我有一个来自 Letsencrypt 的 .pem 格式的证书链,称为 fullchain.pem
其证书链中有 2 个证书:
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 中的错误吗?我是否遗漏了参数?
答案1
您不能像使用 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
以查看所有证书详细信息。
如果输入的 PEM 文件还包含私钥,则更好的格式将是 PKCS#12,因为这种格式可以用密码保护。