客户端证书在 Firefox 中以 .p12 格式有效,但不适用于 .pem 格式

客户端证书在 Firefox 中以 .p12 格式有效,但不适用于 .pem 格式

我需要将客户端证书 .p12 文件转换为 .pem,我使用以下命令完成此操作:

openssl pkcs12 -in combo.p12 -out combo.pem

将 .p12 导入 Firefox 进行测试,我被要求输入密码,输入数据后它就被导入了,但导入 .pem 文件却没有任何反应,什么都没有发生。

我制作的 .pem 证书的格式(......用于敏感数据):

Bag Attributes
   friendlyName: cn=...
   localKeyID: ...
Key Attributes: <No Attributes>
-----BEGIN ENCRYPTED PRIVATE KEY-----

(my encrypted data)

-----END ENCRYPTED PRIVATE KEY-----
Bag Attributes
   friendlyName: cn=...
   localKeyID: ... 
subject=C = ....

issuer=....

-----BEGIN CERTIFICATE-----

(my encrypted data)

 -----END CERTIFICATE-----

来源这里https://knowledge.digicert.com/solution/SO5437.html说 Firefox 应该同时支持 .pem 和 .p12,并且 Firefox 导入文件提示在文件过滤器菜单中提供了“PKCS12 文件”和“证书文件”选项。

我还可以将 .p12 与 PHP(CURL)和 SoapUI 一起使用,但不能将我的 .pem 文件(SoapClient)与其中任何一个一起使用。

或者,如果这不是真正的问题,我该如何验证我的 .pem 文件是否正常?我试过:

openssl verify combo.pem

返回

error 20 at 9 depth lookup: unable to get local issuer certificate
error combo.pem: verification failed

答案1

pem 文件可以保存证书的不同部分 - 因此您可以使用不同的方法来构建证书。就您而言 - 您收到的错误意味着您缺少颁发者证书来验证证书的可信度。

因此,请尝试按以下方式将完整链添加到 pem 中:

-----开始 RSA 私钥-----

(您的私钥:your_client.key)

-----结束 RSA 私钥-----

-----开始证书-----

(您的主要 SSL 证书:your_client.crt)

-----证书结束-----

-----开始证书-----

(您的中级证书:your_Issuer.crt)

-----证书结束-----

-----开始证书-----

(您的根证书:Your_Root.crt)

-----证书结束-----

相关内容