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


184

我已经看到了几个有关如何将PFX转换为证书文件的问题,但是我需要采取另一种方法。

我有两个文件:

bob_cert.cert

bob_key.pem

我想将它们转换为单个.pfx文件。有没有这样做的工具?


16
serverfault.com/a/9717/3202约为证书文件格式很好的解释,仅供参考
罗里

Answers:


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

7
如何在C#中以编程方式实现相同的目的?
pankajt

2
您能指出这些例子的方向吗?我似乎找不到任何东西。
尼克

10
可以在slproweb.com/products/Win32OpenSSL.html上获得Windows版本的OpenSSL 。刚刚尝试过,它就可以正常工作了。
BrianFinkel 2011年


4
还有几个附加项:-name "friendly name"设置名称(例如,将出现在Windows的证书列表中),-certfile cacert.pem可用于添加CA证书并生成.pfx具有整个链的文件。
pvgoran

22

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

  1. 将证书导入证书存储。在Windows资源管理器中,从上下文菜单中选择“安装证书”。 在此处输入图片说明 按照向导并接受默认选项“本地用户”和“自动”。

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

  3. 出口证明书。在上下文菜单中,选择“导出...”菜单: 在此处输入图片说明

    选择“是,导出私钥”: 在此处输入图片说明

    您会看到在这种情况下启用了.PFX选项: 在此处输入图片说明

    指定私钥的密码。


11
在第2步中,我的证书不是“个人”->“证书”。它显示在“其他人”->“证书”中,并且在导出时,“个人信息交换(PFX)”显示为已禁用。您知道如何启用它吗?
加布里埃尔扎洛

我使用DigiCert的便携式证书转换器修复了这个问题:digicert.com/util/…–
Gabrielizalo,

13
您不能导入PEM。
Ross Presser

1
您首先需要将.pem重命名为.cer,以便Windows将文件识别为证书/私钥文件。这两个文件扩展名都可以包含ASCII装甲的纯文本或Base64 / DER编码的二进制格式的证书和/或密钥,但是您可以将cer文件与Windows内置实用程序一起使用。
Mastacheata'8

9
OP的问题是,当证书文件中不包含私钥但您有两个文件时,如何导入它:crt和pem(包含私钥的pem)。在这种情况下,此答案不起作用。
masi

16

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

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

这不是直接的答案,但也许仍然可以帮助其他人。


5

如果您具有makecert.exeWindows计算机上生成的自签名证书,则将获得两个文件:cert.pvkcert.cer。这些可以使用转换为pfxpvk2pfx

pvk2pfx在与makecert(例如C:\Program Files (x86)\Windows Kits\10\bin\x86或类似)相同的位置找到

pvk2pfx -pvk cert.pvk -spc cert.cer -pfx cert.pfx
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.