从 pem 转换为 der 时 openssl 证书链丢失

从 pem 转换为 der 时 openssl 证书链丢失

我有一个来自 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,因为这种格式可以用密码保护。

相关内容