Chrome 中的 SSL 证书“缺少私钥”

gol*_*cks 2 google-chrome openvpn ssl chromebook

我正在尝试根据Google 的这些说明在 Chrome 中安装客户端证书。该证书用于 VPN 并使用 RSA 加密,符合该文档中的一个限定符(仅限 RSA)。它是由easy-rsa在 OpenVPN 网络上使用生成的,并且在一年的大部分时间里使用第三方软件(“OpenVPN 连接”)运行良好,但最近这神秘地开始导致 DNS 问题1所以我现在正在尝试而是内置 Chrome。

但是,当我chrome://settings/certificates尝试导入客户端证书(已在“权限”下安装的 CA 证书)时,我被告知“此客户端证书的私钥丢失或无效”。密钥位于同一目录中具有相同基名和扩展名的单独文件中.key,但不在 Chrome 文件选择器中。

我尝试将密钥(它和证书都在 PEM 中)附​​加到证书,这没有区别。


  1. 注意 VPN没有用于互联网隧道,即,我的默认路由仍然通过本地 wifi 路由器。VPN 路由仅用于该私有子网上的其他节点。服务器和客户端配置都不会推送与 DNS 相关的任何设置。但这与我的问题并不是很相关。

gar*_*Red 7

Chrome 与大多数浏览器一样,希望私钥与公共证书一起安全地存储在 PKCS#12 文件中。

您需要将您拥有的两个文件转换为一个 PKCS#12 文件(有时称为 PFX 文件)。

您可以使用 OpenSSL 进行转换:

openssl pkcs12 -export -out myCert.p12 -inkey myCert.key -in myCert.crt -certfile caCert.crt
Run Code Online (Sandbox Code Playgroud)

注意:您可能将证书保存在以.pem或结尾的文件中.cer- 只需更改上面的命令以使用适当的文件名。

您现在应该可以将其导入浏览器。