如何将 pem 转换为 pfx 文件?

Posted

技术标签:

【中文标题】如何将 pem 转换为 pfx 文件?【英文标题】:How do I convert a pem to pfx file? 【发布时间】:2017-01-27 10:50:53 【问题描述】:

This has me confused:

Convert pfx to PEM:
openssl pkcs12 -in certificatename.pfx -out certificatename.pem

这样做会转储出一个单个纯文本文件。

现在如何将这个纯文本 pem 转换回 pfx?

我看到的唯一转换为 pfx 的命令需要单独文件中的 cer 和私钥:

Convert CER and Private Key to PFX:    
openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile  cacert.cer

【问题讨论】:

Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Unix & Linux Stack Exchange 或Information Security Stack Exchange 会是一个更好的提问地点。 ASN1./DER 和 PEM 是编码或表示格式。这是用-inform-outform-certform 等指定的。可能重复:How to create .pfx file from certificate and private key? 和Convert a CERT/PEM certificate to a PFX certificate @jww+ 虽然 OpenSSL 通常使用 -inform、-outform 等类似的方式,但 pkcs12 是一个例外。 P12 文件本身始终是 DER 而不是 PEM,从 P12 导入或导出到 P12 的密钥和证书仅支持 PEM。 【参考方案1】:

虽然我同意这并不是真正的编程并且可以说是题外话,但社区显然接受了许多关于(加密)密钥和证书的命令行工具(openssl、keytool、certutil 等)的类似 Q(赞成)——但我没有'已经看到直接解决了这一点。

openssl pkcs12 -export 上的不同选项允许您在不同文件中提供片段,但这不是必需的。如果您在一个 PEM 文件中确实有私钥 证书链,默认情况下由 pkcs12 [not -export] 输出,您可以从该文件中读取所有内容

 openssl pkcs12 -export -in file -out p12
 # or ONLY IF the privatekey is first in the file
 openssl pkcs12 -export <file -out p12

只要你把私钥放在第一位,你甚至可以“即时”组合这些部分:

 cat privkey.pem mycert.pem chain.pem | openssl pkcs12 -export -out p12

【讨论】:

【参考方案2】:

您可以使用以下命令将 PEM(.pem、.crt、.cer)转换为 PFX:

openssl pkcs12 -export -out **<your_new_file_name>**.pfx -inkey **<private_key_of_your_existing_certificate>**.key -in **<your_existing_certificate_file>**.crt

这对于所有上述文件来说都是非常通用的。

【讨论】:

但他在问如何将包含证书和私钥的单个 PEM 文件(不是证书和私钥的单独文件)转换为 PFX。

以上是关于如何将 pem 转换为 pfx 文件?的主要内容,如果未能解决你的问题,请参考以下文章

了解将 .pem 文件转换为 .pfx 的 OpenSSL 步骤 [关闭]

使用 OpenSSL 以编程方式将 .PEM 证书转换为 .PFX

text 如何将.pfx SSL证书转换为.crt / key(pem)格式。对NGINX很有用

sh 将PEM证书转换为PFX

pfx格式文件如何打开?如题 谢谢了

[证书] OPENSSL将PFX证书转换为PEM格式