将CERT/PEM证书转换为PFX证书。

296

我看到一些问题关于如何将PFX转换为证书文件,但我需要相反的操作。

我有两个文件:

bob_cert.cert

bob_key.pem

我想把它们转换成一个单独的.pfx文件。是否有这样的工具?


27
http://serverfault.com/a/9717/3202 是一个关于证书文件格式的很好的解释,供参考。 - Rory
这是我为常见的密钥/证书格式和转换命令列表创建的gist链接:https://gist.github.com/tuansoibk/0b1f279be5c1b782d95f4e15af1442cb - maximus
4个回答

553
openssl pkcs12 -inkey bob_key.pem -in bob_cert.cert -export -out bob_pfx.pfx

10
我该如何使用C#以编程方式实现相同的事情? - pankajt
12
可以在http://www.slproweb.com/products/Win32OpenSSL.html找到Windows版的OpenSSL。我刚尝试了一下,对于这个目的它可以正常使用。 - BrianFinkel
11
另外需要补充两点:-name "friendly name" 可以设置名称(例如在Windows证书列表中显示的名称),而 -certfile cacert.pem 则可用于添加CA证书并生成包含完整证书链的 .pfx 文件。 - pvgoran
4
对于那些在运行此命令时遇到困难的人,您可以使用Git Bash来运行它。 - FritsJ
5
我使用 Git Bash 时,输入了这个命令后一直没反应。结果发现我的证书需要密码。在这种情况下,你必须在命令前面添加 "winpty"。所以在 Git Bash 中,命令看起来应该是这样的:[winpty openssl pkcs12 -inkey bob_key.pem -in bob_cert.cert -export -out bob_pfx.pfx]。在运行环境中也可能是相同的情况。 - marcAKAmarc
显示剩余13条评论

51

我从 .key 和 .pem 文件创建了 .pfx 文件。

就像这样 openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

虽然这不是直接的答案,但仍有可能帮助其他人。


6
这与2009年Francis的答案有何不同?基本上是相同的命令。 这与2009年Francis的回答有什么区别?基本上是相同的命令。 - Csaba Toth

35

以下是在Windows上无需第三方工具执行此操作的方法:

  1. 将证书导入证书存储。 在Windows资源管理器中,在上下文菜单中选择“安装证书”。 enter image description here 按照向导提示,接受默认选项:“本地用户”和“自动”。

  2. 在证书存储中查找您的证书。 在Windows 10上运行“管理用户证书”MMC。在Windows 2013上,MMC称为“证书”。在Windows 10上,默认情况下,您的证书应该在“个人” - > “证书”节点下。

  3. 导出证书。 在上下文菜单中选择“导出...”菜单: enter image description here

    选择“Yes, export the private key”: enter image description here

    这种情况下,您会发现.PFX选项已启用: enter image description here

    为私钥指定密码。


27
第二步中,我的证书没有出现在“个人”->“证书”中,而是出现在“其他人”->“证书”中,并且在导出时,“个人信息交换(PFX)”显示为禁用。你知道如何启用它吗? - Gabrielizalo
39
无法导入 PEM。 - Ross Presser
2
你需要先将 .pem 重命名为 .cer,这样 Windows 才能将该文件识别为证书/私钥文件。两种文件扩展名都可以包含 ASCII 编码的明文或 Base64/DER 编码的二进制格式的证书和/或密钥,但你可以使用 cer 文件与 Windows 内置工具。 - Mastacheata
13
OP的问题是在证书文件中不包含私钥,但你有两个文件:crt和pem(pem包含私钥)时如何导入它。这个答案在这种情况下不起作用。 - omni
1
@Bigeyes 我认为这是更新后的链接:https://www.digicert.com/kb/util/pfx-certificate-management-utility-import-export-instructions.htm - Gabrielizalo
显示剩余5条评论

7
如果您在Windows机器上使用makecert.exe生成了自签名证书,您将获得两个文件:cert.pvkcert.cer。您可以使用pvk2pfx将它们转换为pfx格式。 pvk2pfxmakecert在同一位置 (例如C:\Program Files (x86)\Windows Kits\10\bin\x86)。
pvk2pfx -pvk cert.pvk -spc cert.cer -pfx cert.pfx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接