我需要.pfx文件在IIS上的网站上安装https。
我有两个单独的文件:证书(.cer或pem)和私钥(.crt),但IIS只接受.pfx文件。
我显然安装了证书,它在证书管理器(mmc)中可用,但是当我选择证书导出向导时,我无法选择PFX格式(它是灰色的)
是否有任何工具可以做到这一点或C#以编程方式执行此操作?
答案 0 :(得分:439)
您需要使用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
答案 1 :(得分:36)
Microsoft Pvk2Pfx命令行实用程序似乎具有您需要的功能:
Pvk2Pfx(Pvk2Pfx.exe)是一个命令行工具,将.spc,.cer和.pvk文件中包含的公钥和私钥信息复制到个人信息交换(.pfx)文件中。
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx
注意:如果您需要/想要/更喜欢C#解决方案,那么您可能需要考虑使用http://www.bouncycastle.org/ api。
答案 2 :(得分:30)
如果您正在寻找Windows GUI,请查看DigiCert。我只是用它而且非常简单。
在SSL标签下,我首先导入证书。然后,一旦我选择了证书,我就可以导出为PFX,无论是否有密钥文件。
答案 3 :(得分:27)
您不需要openssl或makecert或其中任何一个。您也不需要CA提供给您的个人密钥。我几乎可以保证问题在于您希望能够使用CA提供的密钥和cer文件,但它们不是基于“IIS方式”。我已经厌倦了在这里看到糟糕和困难的信息,我决定写博客主题和解决方案。当你意识到发生了什么并看到它有多容易时,你会想拥抱我:)
一次性使用PFX的IIS的SSL Certs - 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生成的,那么您必须在此步骤中提供相同的内容。
答案 4 :(得分:6)
您需要使用makecert工具。
以管理员身份打开命令提示符,然后键入以下内容:
makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"
其中<CertifcateName>
=要创建的证书的名称。
然后,您可以通过在“开始”菜单中键入certmgr.msc,单击“个人”&gt;打开管理控制台的“证书管理器”管理单元。证书&gt;并且您的证书应该可用。
这是一篇文章。
https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/
答案 5 :(得分:6)
我收到了您的要求链接。Combine CRT and KEY Files into a PFX with OpenSSL
从以上链接中摘录:
首先,我们需要从现有的CA提取根CA证书 .crt文件,因为我们以后需要这个。所以打开.crt并单击 在“证书路径”选项卡上。
单击最顶层的证书(在本例中为VeriSign),然后单击“查看” 证书。选择Details选项卡,然后单击Copy to File ...
选择Base-64编码的X.509(.CER)证书将其另存为rootca.cer 或类似的东西。将其放在与其他文件相同的文件夹中。
将它从rootca.cer重命名为rootca.crt现在我们应该有3个文件 我们可以从中创建PFX文件的文件夹。
这是我们需要OpenSSL的地方。我们可以download and install it on Windows,或者只是在OSX上打开终端。
修改强>
答案 6 :(得分:6)
https://msdn.microsoft.com/en-us/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
答案 7 :(得分:4)
这是BY FAR将* .cer转换为* .pfx文件的最简单方法:
只需从DigiCert下载便携式证书转换器: https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm
执行它,选择一个文件并获得* .pfx !!
答案 8 :(得分:4)
我从.key和.pem文件创建了.pfx文件。
喜欢这个openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx
答案 9 :(得分:3)
当您说证书在MMC中可用时,它是否可在“当前用户”或“本地计算机”下使用?我发现只有在本地计算机下才能导出私钥。
您可以将证书的管理单元添加到MMC,并选择应为其管理证书的帐户。选择本地计算机。如果您的证书不存在,请通过右键单击商店并选择所有任务&gt;导入它。进口。
现在导航到证书管理单元的本地计算机版本下的导入证书。右键单击证书并选择所有任务&gt;出口。导出向导的第二页应询问您是否要导出私钥。选择是。 PFX选项现在将是唯一可用的选项(如果选择“否”,则显示为灰色,导出私钥的选项在“当前用户”帐户下不可用)。
系统会要求您为PFX文件设置密码,然后设置证书名称。
答案 10 :(得分:1)
我遇到了同样的问题。我的问题是,在扩展的ssl验证过程完成之前,生成初始证书请求的计算机已崩溃。我需要生成一个新的私钥,然后从证书提供程序导入更新的证书。如果您的计算机上不存在私钥,则无法将证书导出为pfx。他们的选择是灰色的。
答案 11 :(得分:1)
尽管使用IIS生成新的CSR可能最容易(如@rainabba所说),假设您拥有中间证书,那里有一些在线转换器 - 例如: https://www.sslshopper.com/ssl-converter.html
这将允许您从证书和私钥创建PFX,而无需安装其他程序。
答案 12 :(得分:0)
在大多数情况下,如果您无法将证书导出为PFX(包括私钥),则因为MMC / IIS无法找到/无法访问私钥(用于生成CSR) 。以下是我为解决此问题而采取的步骤:
希望这有帮助!
答案 13 :(得分:0)
我知道有几个用户已经讨论过安装这个以及添加命令行程序和下载...
就我个人而言,我很懒,发现所有这些方法既繁琐又慢,而且我不想下载任何东西,如果我不需要,也找不到正确的cmd线。
我个人IIS服务器上的最佳方法是使用RapidSSLOnline。这是一个服务器上的工具,允许您上传证书和私钥,并能够为您生成可以直接导入IIS的pfx文件。
链接在这里: https://www.rapidsslonline.com/ssl-tools/ssl-converter.php
以下是所请求方案的步骤。
- 选择当前类型= PEM
- 更改= PFX
- 上传您的证书
- 上传您的私钥
- 如果您有ROOT CA证书或中间证书也上载
- 设置您在IIS中使用的密码
- 点击reCaptcha以证明您不是机器人
- 点击转换
醇>
那就是你应该下载PFX并在IIS的导入过程中使用它。
希望这有助于其他志同道合,懒惰的技术人员。
答案 14 :(得分:0)
Powershell有一个Export-PfxCertificate
cmdlet似乎可以完成任务。
答案 15 :(得分:-6)
对于免费提供的来自SSL的pfx文件,我发现这个https://decoder.link/converter最简单。
只需确保选择了PEM
-> PKCS#12
,然后上传证书,ca_bundle和密钥文件并进行转换。
记住密码,然后使用您使用的密码上传并添加绑定。