当从pem转换到der时,openssl证书链丢失

我有一个来自Letsencrypt的.pem格式的证书链,名为fullchain.pem

它有两个证书链:

keytool -printcert -v -file fullchain.pem |grep "Certificate fingerprints" |wc -l 2 

当我将其转换为.der使用

 openssl x509 -in fullchain.pem -out cert.der -outform DER 

它只输出最后一个

 keytool -printcert -v -file cert.der |grep "Certificate fingerprints" |wc -l 1 

这是openssl中的错误吗? 我错过了一个参数吗?

您不能通过将PEM格式与PEM格式相结合来连接DER编码链。

二进制格式的链将采用PKCS#7格式。 要将PEM链转换为PKCS#7,请使用:

 openssl crl2pkcs7 -nocrl -certfile fullchain.pem -out fullchain.p7b 

然后,看到的内容:

 openssl pkcs7 -in fullchain.p7b -print_certs -noout 

添加-text以查看所有证书详细信息。

如果input的PEM文件还包含私钥,则更好的格式将是PKCS#12,因为可以使用密码保护该格式。