我需要.pfx文件才能在IIS的网站上安装https。
我有两个单独的文件:证书(.cer或pem)和私钥(.crt),但是IIS仅接受.pfx文件。
我显然安装了证书,并且可以在证书管理器(mmc)中使用它,但是当我选择“证书导出向导”时,我无法选择PFX格式(显示为灰色)
是否有任何工具可以做到这一点,或者有C#示例以编程方式做到这一点?
我需要.pfx文件才能在IIS的网站上安装https。
我有两个单独的文件:证书(.cer或pem)和私钥(.crt),但是IIS仅接受.pfx文件。
我显然安装了证书,并且可以在证书管理器(mmc)中使用它,但是当我选择“证书导出向导”时,我无法选择PFX格式(显示为灰色)
是否有任何工具可以做到这一点,或者有C#示例以编程方式做到这一点?
Answers:
您将需要使用openssl。
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt
密钥文件只是一个包含私钥的文本文件。
如果您具有根CA和中间证书,则也可以使用多个-in
参数将它们包括在内
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt
您可以从此处安装openssl:openssl
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt
-certfile intermediate.crt -certfile rootca.crt
在提示.pfx
使用密码短语/密码保护之前,我必须指定。我认为这可能是因为.key
与其他-in
文件不匹配导致我收到“没有证书与私钥匹配”错误消息。
Microsoft Pvk2Pfx命令行实用程序似乎具有您需要的功能:
Pvk2Pfx(Pvk2Pfx.exe)是一个命令行工具,可将.spc,.cer和.pvk文件中包含的公钥和私钥信息复制到个人信息交换(.pfx)文件中。
http://msdn.microsoft.com/zh-CN/library/windows/hardware/ff550672(v=vs.85).aspx
注意:如果您需要/希望/更喜欢C#解决方案,则可能需要考虑使用http://www.bouncycastle.org/ api。
如果您正在寻找Windows GUI,请查看DigiCert。我只是用这个,这很简单。
在SSL标签下,我首先导入了证书。然后,一旦选择了证书,无论有没有密钥文件,我都可以导出为PFX。
DigiCertUtil.exe
可执行文件的根目录中。最简单的方法是将其复制到证书文件夹。
您不需要openssl或makecert或任何其他。您也不需要CA给予您的个人密钥。我几乎可以保证,问题在于您希望能够使用CA提供的密钥和cer文件,但它们不是基于“ IIS方式”的。我对在这里看到糟糕和困难的信息感到非常厌倦,因此决定将主题和解决方案写成博客。当您意识到正在发生的事情并看到它有多么简单时,您将想要拥抱我:)
一劳永逸的IIS与PFX的SSL证书-SSL和IIS解释-http: //rainabba.blogspot.com/2014/03/ssl-certs-for-iis-with-pfx-once-and-for.html
使用IIS“服务器证书” UI来“生成证书请求”(此请求的详细信息超出了本文的范围,但这些详细信息很重要)。这将为您准备针对IIS的CSR。然后,您将该CSR交给您的CA,并要求获得证书。然后,您获取他们给您的CER / CRT文件,回到生成请求的位置的IIS,“完成证书请求”。它可能会要求一个.CER,而您可能会有一个.CRT。他们是一样的东西。只需更改扩展名或使用即可。扩展名下拉菜单以选择您的.CRT。现在提供一个适当的“友好名称”(* .yourdomain.com,yourdomain.com,foo.yourdomain.com等。)这很重要!这必须与您为CSR设置的内容以及CA为您提供的内容相匹配。如果您要求使用通配符,则您的CA必须已经批准并生成了通配符,并且您必须使用通配符。如果您的CSR是为foo.yourdomain.com生成的,则必须在此步骤中提供相同的内容。
我从.key和.pem文件创建了.pfx文件。
像这样 openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx
-export
开关。
https://msdn.microsoft.com/zh-CN/library/ff699202.aspx
((本文相关引号如下))
接下来,您必须创建用于签名部署的.pfx文件。打开命令提示符窗口,然后键入以下命令:
PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword
哪里:
- pvk-yourprivatekeyfile.pvk是您在步骤4中创建的私钥文件。
- spc-yourcertfile.cer是您在步骤4中创建的证书文件。
- pfx-yourpfxfile.pfx是将要创建的.pfx文件的名称。
- po-yourpfxpassword是要分配给.pfx文件的密码。第一次将.pfx文件添加到Visual Studio中的项目时,系统将提示您输入此密码。
(可选的(不是OP的,而是供将来的读者使用的),您可以从头开始创建.cer和.pvk文件)(您可以在上述操作之前进行此操作)。请注意,mm / dd / yyyy是开始日期和结束日期的占位符。有关完整文档,请参见msdn文章。
makecert -sv yourprivatekeyfile.pvk -n "CN=My Certificate Name" yourcertfile.cer -b mm/dd/yyyy -e mm/dd/yyyy -r
您需要使用makecert工具。
以管理员身份打开命令提示符,然后键入以下内容:
makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"
其中<CertifcateName>
=要创建的证书名称。
然后,您可以通过在开始菜单中键入certmgr.msc打开管理控制台的证书管理器管理单元,单击个人>证书>,并且您的证书应该可用。
这是一篇文章。
https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/
我与您的要求有关。使用OpenSSL将CRT和KEY文件合并为PFX
摘自上述链接:
首先,我们需要从现有的.crt文件中提取根CA证书,因为稍后需要此证书。因此,打开.crt并单击“证书路径”选项卡。
单击最上面的证书(在本例中为VeriSign),然后单击“查看证书”。选择详细信息选项卡,然后单击复制到文件…
选择Base-64编码的X.509(.CER)证书将其另存为rootca.cer或类似名称。将其与其他文件放在同一文件夹中。
将其从rootca.cer重命名为rootca.crt现在,我们的文件夹中应该有3个文件,可以从中创建PFX文件。
这是我们需要OpenSSL的地方。我们可以在Windows上下载并安装它,也可以在OSX上打开终端。
编辑:
成功安装后,导出证书,选择.pfx
格式,包括私钥。
导入的文件可以上传到服务器。
这是BY FAR将* .cer转换为* .pfx文件的最简单方法:
只需从DigiCert下载便携式证书转换器: https //www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm
执行它,选择一个文件并获取您的* .pfx!
当您说证书在MMC中可用时,它在“当前用户”或“本地计算机”下可用吗?我发现我只能导出私钥在“本地计算机”下。
您可以将证书管理单元添加到MMC,然后选择应为其管理证书的帐户。选择本地计算机。如果您的证书不存在,请通过右键单击商店并选择“所有任务”>“导入”来导入它。
现在,在证书管理单元的本地计算机版本下导航到导入的证书。右键单击该证书,然后选择“所有任务”>“导出”。导出向导的第二页应询问您是否要导出私钥。选择是。现在,PFX选项将是唯一可用的选项(如果您选择no,则灰显,并且在Current User帐户下,导出私钥的选项不可用)。
系统将要求您为PFX文件设置密码,然后设置证书名称。
尽管使用IIS生成新的CSR可能最容易(例如@rainabba所说),但假设您具有中间证书,那里还有一些在线转换器-例如: https //www.sslshopper.com/ssl-converter。 html
这将允许您从证书和私钥创建PFX,而无需安装其他程序。
在大多数情况下,无法将证书导出为PFX(包括私钥)是因为MMC / IIS无法找到/无法访问私钥(用于生成CSR)。这些是我修复此问题所遵循的步骤:
希望这可以帮助!
我知道一些用户谈论过安装此程序以及添加命令行程序和下载...
就我个人而言,我很懒,发现所有这些方法既麻烦又缓慢,而且我不想下载任何东西,如果不需要的话,也可以找到正确的cmd行。
在我的个人IIS服务器上,对我来说最好的方法是使用RapidSSLOnline。这是服务器上的工具,允许您上载证书和私钥,并能够为您生成一个pfx文件,您可以将其直接导入IIS。
链接在这里: https //www.rapidsslonline.com/ssl-tools/ssl-converter.php
以下是用于所需方案的步骤。
- 选择当前类型= PEM
- 更改为= PFX
- 上载您的证书
- 上传您的私钥
- 如果您具有ROOT CA证书或中级证书,也要上传它们
- 设置您选择的密码,用于IIS
- 单击reCaptcha以证明您不是机器人
- 点击转换
就是这样,您应该已经下载了PFX,并在IIS上的导入过程中使用了它。
希望这对其他志趣相投的懒惰技术人员有所帮助。
对于来自SSLForFree的cfx文件,我觉得这个https://decoder.link/converter最简单。
只需确保选择了PEM-> PKCS#12,然后上传证书,ca_bundle和密钥文件并进行转换。记住密码,然后使用您使用的密码上传并添加绑定。