【发布时间】:2016-08-20 16:59:43
【问题描述】:
我想在带有 IIS 的开发环境中测试 SSL 连接。为此,我需要创建一个安装在机器存储中的自签名根证书,以及另一个使用根证书签名的证书以安装在 IIS 中。
现在不推荐使用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
【问题讨论】:
-
如果您只使用 RSA 密钥,
MakeCert.exe就足够了,但最好使用MakeCert.exe的一些附加选项。New-SelfSignedCertificate不会给你带来任何好处。互联网上可用的其他 Powershell 模块可能会更好。您可以使用OpenSSL.exe 而不是MakeCert.exe创建可以在IIS 上使用的RSA 或椭圆曲线证书。如果您的 IIS 服务器可通过 Internet(端口 80)使用,那么您可以使用 Let's Encrypt 获得免费的真实 SSL 证书,并且客户端无需在受信任的根目录中安装您的“CA”证书。 -
问题是使用
New-SelfSignedCertificate是有原因的。我不想使用MakeCert或OpenSSL。 -
只需使用启动 powershell 并使用
New-SelfSignedCertificate -?和get-help New-SelfSignedCertificate -examples。可能性取决于您使用的 Windows 版本。比较 technet.microsoft.com/en-us/library/hh848633.aspx 和 technet.microsoft.com/en-us/library/hh848633(v=wps.630).aspx -
我的操作系统是 Windows 10。 powershell 版本的更新还应该在旧系统上启用新功能。我猜
-ExistingKey参数可能是解决方案的关键(如MakeCert中的-iv参数)。但是,到目前为止我还没有找到一个例子。 -
在我看来,
-Signer指定了 CA 证书。我做了一些测试,很快就会发布我的答案并附上使用示例。
标签: wcf powershell ssl iis certificate