我希望在IIS的开发环境中测试SSL连接。为此,我需要创建一个自签名根证书并将其安装在机器存储中,以及另一个使用根证书签名的证书以安装在IIS中。
使用
如果您正确设置了密钥用途设置,则可以获得额外的奖励分数 :-)
注意:直接在IIS中使用自签名证书无法正常工作,因为浏览器和WCF认为它们无效。
供参考,以下是使用makecert的方法:
使用
makecert
已经过时,因此我想知道如何使用Powershell和New-SelfSignedCertificate
命令来实现。如果您正确设置了密钥用途设置,则可以获得额外的奖励分数 :-)
注意:直接在IIS中使用自签名证书无法正常工作,因为浏览器和WCF认为它们无效。
供参考,以下是使用makecert的方法:
# create the self signed root certificate
makecert -n "CN=root.lan" -r -sv root.pvk root.cer
# create the certificate for IIS that gets signed with the root certificate
makecert -sk "Local Certificate" -iv root.pvk -n "CN=localhost" -ic root.cer -sr localmachine -ss my -sky exchange -pe
# convert to other formats
cert2spc localhost.cer localhost.spc
pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx
MakeCert.exe
就足够了,但最好使用一些额外的选项来优化MakeCert.exe
。New-SelfSignedCertificate
没有任何优势。互联网上提供的其他Powershell模块可能更好。您可以使用OpenSSL.exe代替MakeCert.exe
创建RSA或椭圆曲线证书,这些证书可用于IIS。如果您的IIS服务器可以通过Internet(端口80)访问,则可以使用Let's Encrypt免费获取真实的SSL证书,客户端无需在受信任的根中安装您的“CA”证书。 - OlegNew-SelfSignedCertificate
,我不想使用MakeCert
或OpenSSL
。 - MovGP0New-SelfSignedCertificate -?
和get-help New-SelfSignedCertificate -examples
命令。这取决于您使用的 Windows 版本的可能性。请参阅 https://technet.microsoft.com/zh-cn/library/hh848633.aspx 和 https://technet.microsoft.com/zh-cn/library/hh848633(v=wps.630).aspx 进行比较。 - Oleg-ExistingKey
参数可能是解决方案的关键(就像MakeCert
中的-iv
参数一样)。但是,到目前为止我还没有找到一个例子。 - MovGP0-Signer
指定了CA证书。我进行了一些测试,并很快会发布我的答案,其中包括使用示例。 - Oleg