如何将 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