在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
你之前看过这个错误吗?
尝试这个:
$ openssl pkcs7 -inform der -in a.p7b -out a.cer
如果不起作用,请将其导入Windows机器并导出。
我按照这个指导 ,指导你改变页眉/页脚线
-----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.certs
(其中foo.modified.crt
是保存修改版本的文件)。 这给了我与其他答案中build议的运行通过Windows证书导出相同的结果。
所以要结合上面的答案,命令是:
openssl pkcs7 -in cert.p7b -inform DER -print_certs -out cert.pem
使用OpenSSL-Win64进行Windowsvalidation
/感谢Bogdan发现错误
我也有这个问题。 我打算validation从Win7主机复制的p7b文件。
我发现gnome keyring可以导入证书。 从那里很容易出口到DER
快速解决scheme在我的情况下(很多文件头/页脚丢失):
base64 -d $FILE | openssl pkcs7 -inform DER -print_certs
据我所知,以下应该将pkcs7证书转换为pem
openssl pkcs7 -in certificate_file.p7b -print_certs -out cert.pem