通过 OpenSSL 从 P7B 转换为 PEM

通过 OpenSSL 从 P7B 转换为 PEM

在 Ubuntu 上,我无法成功使用 openssl 转换证书。

vagrant@dev:/vagrant/keys$ openssl pkcs7 -print_certs -in a.p7b -out a.cer 
unable to load PKCS7 object <blah blah>:PEM
routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: PKCS7

您之前见过这个错误吗?

答案1

尝试这个:

$ openssl pkcs7 -inform der -in a.p7b -out a.cer

如果不起作用,请带到 Windows 机器并导出以下指导。

答案2

因此,结合以上答案,命令是:
openssl pkcs7 -in cert.p7b -inform DER -print_certs -out cert.pem

已验证可在 Windows 上使用,使用 OpenSSL-Win64

/感谢 Bogdan 发现错误

答案3

我跟着本指南指示您更改页眉/页脚行

-----BEGIN PKCS #7 SIGNED DATA-----
[data]
-----END PKCS #7 SIGNED DATA-----

-----BEGIN CERTIFICATE-----
[data]
-----END CERTIFICATE-----

然后运行命令openssl pkcs7 -in foo.modified.crt -print_certs -out foo.certsfoo.modified.crt将修改后的版本保存到的文件在哪里)。这给了我与其他答案中建议的通过 Windows 证书导出运行相同的结果。

答案4

就我的情况而言,快速解决方案(很多文件缺少页眉/页脚):

base64 -d $FILE | openssl pkcs7 -inform DER -print_certs

相关内容