jlp*_*jlp 330 windows security iis certificate ssl-certificate
我需要.pfx文件在IIS上的网站上安装https.
我有两个单独的文件:证书(.cer或pem)和私钥(.crt)但IIS只接受.pfx文件.
我显然安装了证书,它在证书管理器(mmc)中可用,但是当我选择证书导出向导时,我无法选择PFX格式(它是灰色的)
是否有任何工具可以做到这一点或C#以编程方式执行此操作的示例?
jde*_*lin 496
您将需要使用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
Yur*_*ura 52
适用于不需要安装 OpenSSL 的 Windows 的解决方案
我最近试图解决同样的问题 - 我只有一台 Windows 笔记本电脑,没有安装 openssl(并且没有足够的管理员权限来安装它)。结果 Windows 有一个名为 的内置实用程序,certutil
能够将 .crt 和 .key 文件合并为 .pfx。文档在这里。
您需要创建一个新文件夹并将您.crt
和关键文件放入其中。将两个文件重命名为具有相同的名称(但扩展名不同):
{{sitename}}.crt
{{siteName}}.key
Run Code Online (Sandbox Code Playgroud)
如果您的密钥文件是常规 txt - 只需将扩展名更改为.key
.
之后在该文件夹中打开cmd并运行certutil -mergepfx [INPUTFILE] [OUTPUTFILE]
例子:
证书文件:mySite.crt
密钥文件:mySite.key
certutil 命令:certutil -mergepfx mySite.crt mySite.pfx
注意:系统会要求您提供新创建的.pfx
文件的密码 - 不要忘记记住/存储它 - 因为在目标系统上导入证书期间需要它。
Sey*_*our 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.
joe*_*net 30
如果您正在寻找Windows GUI,请查看DigiCert.我只是用它而且很简单.
在SSL选项卡下,我首先导入证书.然后,一旦我选择了证书,我就可以导出为PFX,无论是否有密钥文件.
rai*_*bba 28
你不需要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生成的,那么您必须在此步骤中提供相同的CSR.
小智 15
我从 .key 和 .pem 文件创建了 .pfx 文件。
像这样 openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx
Fab*_*ira 12
从这个链接:
如果需要,请使用以下简单的命令序列与OpenSSL来生成filessl.key
(SSL 证书密钥文件)和filessl.crt
(SSL 证书文件):
openssl genrsa 2048 > filessl.key
chmod 400 filessl.key
openssl req -new -x509 -nodes -sha256 -days 365 -key filessl.key -out filessl.crt
Run Code Online (Sandbox Code Playgroud)
在此之前,您必须回复交互式表单(您可以从另一篇文章中找到参考信息:https: //stackoverflow.com/a/49784278/7856894req.cnf
)
然后,继续执行最后一个命令,该命令将要求您输入导出密码:
openssl pkcs12 -export -out filessl.pfx -inkey filessl.key -in filessl.crt
Run Code Online (Sandbox Code Playgroud)
准备好了,它生成了.PFX(或 .P12)格式的SSL证书文件: 。filessl.pfx
您需要使用makecert工具.
以管理员身份打开命令提示符并键入以下内容:
makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"
Run Code Online (Sandbox Code Playgroud)
其中<CertifcateName>
=要创建的证书的名称.
然后,您可以通过在"开始"菜单中键入certmgr.msc,单击个人>证书>来打开管理控制台的证书管理器管理单元,并且您的证书应该可用.
这是一篇文章.
https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/
这是迄今为止将 *.cer 转换为 *.pfx 文件的最简单方法:
只需从 DigiCert 下载便携式证书转换器:https : //www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm
执行它,选择一个文件并得到你的 *.pfx !!
https://msdn.microsoft.com/en-us/library/ff699202.aspx
((文章的相关引言如下))
接下来,您必须创建用于对部署进行签名的.pfx文件.打开命令提示符窗口,然后键入以下命令:
PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword
Run Code Online (Sandbox Code Playgroud)
哪里:
- 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
Run Code Online (Sandbox Code Playgroud)
openssl pkcs12 -export -in 证书.cer -inkey privateKey.key -out 证书.pfx
我得到了你的要求的链接.将CRT和KEY文件合并到带有OpenSSL的PFX中
以上链接的摘录:
首先,我们需要从现有的.crt文件中提取根CA证书,因为我们稍后需要它.因此,打开.crt并单击"证书路径"选项卡.
单击最顶层的证书(在本例中为VeriSign),然后单击"查看证书".选择Details选项卡,然后单击Copy to File ...
选择Base-64编码的X.509(.CER)证书将其另存为rootca.cer或类似名称.将其放在与其他文件相同的文件夹中.
将它从rootca.cer重命名为rootca.crt现在我们的文件夹中应该有3个文件,我们可以从中创建PFX文件.
这是我们需要OpenSSL的地方.我们可以在Windows上下载并安装它,或者只是在OSX上打开终端.
编辑:
成功安装后,导出证书,选择.pfx
格式,包含私钥.
导入的文件可以上传到服务器.
小智 5
我在 macbook 上使用 libreSSL v2.8.3 尝试 openssl 并收到错误“没有证书与私钥匹配”。我有一个域证书、2 个中间证书和 1 个根证书。所以我使用以下命令成功运行:
openssl pkcs12 -export -clcerts -inkey private.csr.key -in domain.name.crt -certfile intermediate1.crt -certfile intermediate2.crt -certfile root.crt -out domain.name.p12 -name "Your Name"
Run Code Online (Sandbox Code Playgroud)
它将要求输入在导入过程中使用的密码。此命令将生成一个 .p12 文件,可以将其重命名为 .pfx,因为两者相同。
归档时间: |
|
查看次数: |
740729 次 |
最近记录: |