我的web应用程序项目包含多个在一个IIS Express站点的保护伞下服务的网站。我成功地跟踪了Scott的优秀博客帖子,IIS成功地从同一个web应用程序根目录为http://foo.local和http://bar.local服务。
但是,我需要两个站点来支持SSL。按照Hanselman的建议,我可以创建一个SSL证书并将其“附加”到一个IP端口组合中。
makecert -r -pe -n "CN=foo.local" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
netsh http add sslcert ipport=0.0.0.0:443 appid='{214124cd-d05b-4309-9af9-9caa44b2b74b}' certhash=284475d4a4eb5c4d3ab7da4fdefa928186482376这是成功的,但我不能重复第二个网站的过程。显然,只有一个SSL证书可以应用于单个IP端口组合。
我如何制作涵盖https://foo.local和https://bar.local的SSL证书,或者为每个站点“附加”一个证书?
发布于 2014-07-30 15:49:58
jww的回答把我引向了正确的方向。除了Hanselman的使用说明之外,我还必须这样做。
首先,我在IIS‘applicationhosts.config中的站点绑定上启用了SNI。这仅仅意味着追加sslFlags属性:
<binding protocol="https" bindingInformation="*:443:foo.local" sslFlags="1" />
<binding protocol="https" bindingInformation="*:443:bar.local" sslFlags="1" />(信用:在IIS8上配置SNI?)
然后,我没有使用makecert,而是使用PowerShell的New-SelfSignedCertificate cmdlet创建了一个自签名证书:
New-SelfSignedCertificate -DnsName foo.local, bar.local -CertStoreLocation cert:\LocalMachine\My(信用:如何在Windows 8中创建自签名SAN证书)
除此之外,我还按照Hanselman的指示,使用netsh http add sslcert...为IP端口“注册”证书,并使用MMC“证书”插件使其可信。
发布于 2014-07-30 00:17:29
显然,只有一个SSL证书可以应用于单个IP端口组合.
需要IIS 8或更高版本才能使用多个证书。IIS 8支持服务器名称指示(SNI)。见使用IIS 8的服务器名称指示(SNI) (Windows 2012)。
如何制作涵盖
https://foo.local和https://bar.local的SSL证书.
创建一个证书。在证书中,将两个名称放在主题替换名称(SAN)中。在CN中放一个友好的名字。
CN应该是一个友好的名称,因为:
..。或者以其他方式为每个网站“附加”一个?
升级到IIS 8或Server 2012。
按照汉瑟曼的建议..。
makecert -r -pe -n "CN=foo.local"
他的建议在这里是错的。
https://stackoverflow.com/questions/25025757
复制相似问题