我设置了一个简单的 Apache 2 服务器并启用了安全 SSL 连接。我使用自己的自签名根 CA 证书创建子 CA,并使用该证书创建安装在 Apache 服务器上的服务器证书。
现在我想启用客户端身份验证,这样只有用户提供有效证书时才能访问网站。因此,我在服务器上启用了 SSLVerify 选项,现在没有用户证书就无法访问 HTTPS 连接。
我使用我的 Sub-CA 证书创建了一个用户证书。我在 ubuntu VM 上使用 openssl,因此我将文件复制到我的本机 Windows 10,并尝试在本机平台上的 Firefox 浏览器中安装用户证书。但是,安装失败,提示我没有与证书关联的私钥。我进行了一些故障排除,结果发现,安装在其他机器上创建的证书有问题。但是,我没有找到此问题的解决方案。
有没有什么方法可以在我的 Windows 10 机器上的浏览器上安装此用户证书,而无需生成新的证书文件?
答案1
Firefox 不支持从“PEM”文件导入私钥。
当你要求它从 PEM 或 DER 文件导入证书时,它会导入仅有的证书,而不是文件中的任何私钥。相反,它希望将证书与它已经拥有的“未绑定”私钥相关联(即之前使用 obsolete 标签生成的私钥<keygen>
)。
如果您拥有带有外部生成的私钥的证书,则需要将两者都导出为 PKCS#12 格式的 .p12 文件(又名 PFX,就像 Windows 使用的 .pfx 文件一样),例如使用openssl pkcs12 -export
。