我需要pfx文件来安装IIS网站上的https。

我有两个单独的文件:证书(。cer或pem)和私钥(.crt),但IIS只接受.pfx文件。

我显然安装了证书,它在证书管理器(mmc)中可用,但当我选择证书导出向导时,我无法选择PFX格式(它是灰色的)

有什么工具可以做到这一点吗?或者c#中有编程的例子吗?


当前回答

Windows不需要安装OpenSSL的解决方案

我最近试图解决同样的问题——我只有一台windows笔记本电脑,没有安装openssl(也没有足够的管理权限来安装它)。原来windows有一个内置的实用程序,叫做certutil,它能够将。crt和。key文件组合成。pfx。医生来了。

您需要创建一个新文件夹,并将.crt和关键文件放在其中。重命名两个文件,使其具有相同的名称(但扩展名不同):

{{sitename}}.crt
{{siteName}}.key

如果你的密钥文件是一个普通的txt -只是改变扩展名。key。

之后,在该文件夹中打开cmd并运行certutil -mergepfx [INPUTFILE] [OUTPUTFILE]

例子:

证书文件:“mySite.crt”

密钥文件:mySite.key

certutil命令:certutil -mergepfx mySite。crt mySite.pfx

注意:您将被要求为新创建的.pfx文件提供密码-不要忘记记忆/存储它-因为在目标系统上导入证书时将需要它。

其他回答

如果您正在寻找Windows图形用户界面,请查看DigiCert。我只用了这个,非常简单。

在SSL选项卡下,我首先导入了证书。然后,一旦我选择了证书,我就可以将其导出为PFX,包括带或不带密钥文件。

https://www.digicert.com/util

从这个链接:

https://serverfault.com/a/224127/569310 https://stackoverflow.com/a/49784278/7856894 https://stackoverflow.com/a/17284371/7856894

如果需要,可以在OpenSSL中使用这个简单的命令序列来生成filessl。key (SSL证书密钥文件)、filessl. key和filessl. key。SSL证书文件:

openssl genrsa 2048 > filessl.key
chmod 400 filessl.key
openssl req -new -x509 -nodes -sha256 -days 365 -key filessl.key -out filessl.crt

在此之前,您必须响应交互式表单(您可以从其他帖子中找到类似req.cnf的参考信息:https://stackoverflow.com/a/49784278/7856894)

然后,继续执行最后一个命令,它会要求您输入Export Password:

openssl pkcs12 -export -out filessl.pfx -inkey filessl.key -in filessl.crt

准备好了,它生成了.pfx(或. p12)格式的SSL证书文件:

这是迄今为止最简单的转换方法。Cer到*。可以文件:

只需从DigiCert下载便携式证书转换器: https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm

执行它,选择一个文件,并得到你的*.pfx!!

Windows不需要安装OpenSSL的解决方案

我最近试图解决同样的问题——我只有一台windows笔记本电脑,没有安装openssl(也没有足够的管理权限来安装它)。原来windows有一个内置的实用程序,叫做certutil,它能够将。crt和。key文件组合成。pfx。医生来了。

您需要创建一个新文件夹,并将.crt和关键文件放在其中。重命名两个文件,使其具有相同的名称(但扩展名不同):

{{sitename}}.crt
{{siteName}}.key

如果你的密钥文件是一个普通的txt -只是改变扩展名。key。

之后,在该文件夹中打开cmd并运行certutil -mergepfx [INPUTFILE] [OUTPUTFILE]

例子:

证书文件:“mySite.crt”

密钥文件:mySite.key

certutil命令:certutil -mergepfx mySite。crt mySite.pfx

注意:您将被要求为新创建的.pfx文件提供密码-不要忘记记忆/存储它-因为在目标系统上导入证书时将需要它。

当您说证书在MMC中可用时,它是在“当前用户”或“本地计算机”下可用吗?我发现只有在本地计算机下才能导出私钥。

您可以将证书管理单元添加到MMC,并选择它应该为哪个帐户管理证书。选择本地计算机。如果您的证书不在那里,请通过右键单击存储区并选择All Tasks > import来导入它。

现在,在证书管理单元的本地计算机版本下导航到导入的证书。右键单击证书,选择“All Tasks > Export”。导出向导的第二页应该询问您是否要导出私钥。选择Yes。PFX选项现在将是唯一可用的选项(如果选择no,则显示灰色,并且当前用户帐户下无法导出私钥)。

系统将要求您为PFX文件设置密码,然后设置证书名称。