在IIS 7.5上,我试图用两个网站实现这个function:
Default Web Site is bound to: (blank host header port 80 - http) (blank host header port 443 - https) go.example.com www71.example.com the IP address of go.example.com 2nd web site "Beta" is bound to: beta.example.com (blank host header port 443 - https) * using blank only because it doesn't seem to be possible to bind https to a named host header
而且都需要使用SSL。 但是我有这些问题:
这是我设置它的方式:

什么是正确的方式来设置它?
如果没有SNI扩展名 ,则可以仅为每个IP:端口对绑定一个SSL证书。 如果您需要在同一个IP上运行2个HTTPS,请将它们绑定到不同的端口,然后参考提供URL的端口(例如https://beta.example.com:444/ )。 您可以在不同的端口上使用相同的通配符证书,没有任何问题。
如果您有多个空白主机名的站点(对于HTTP协议),那么ID较低的站点应该是“全部捕获”。 HTTPS也是如此 – 具有较低ID的应拦截该端口上的所有请求。
另一方面,你有一个通配符证书,我已经看到一篇文章,告诉这可以在IIS7中完成: http ://www.sslshopper.com/article-ssl-host-headers-in-iis-7.html 。 我过去自己尝试过,但对我来说效果并不好 – 通常IIS在访问甚至是静态文件(当我们将另一个主机绑定到不同的端口时停止发生)时会抛出5xx错误。 也许从那时起它已经被修复了。
IIS 7或7.5中尚不支持服务器名称指示 。 希望他们会在下一个IIS中实现这个function: http : //forums.iis.net/p/1161905/1923273.aspx
虽然这是一个老问题,但我最近才需要完成同样的事情。 它可以通过使用主题替代名称证书在IIS 7.x下完成。 这些证书比通配符更受欢迎,因为它仅限于特定列出的站点,因此通过在通配符下捕获的域内欺骗伪造站点名称来缓解攻击。
一旦将SAN证书导入到IIS中,就可以使用appcmd工具来指定附加绑定,或者在该部分中手动编辑applicationHost.config,例如
<site name="SomeSite" id=9> <bindings> <binding protocol="http" bindingInformation="*:80:SomeSite"/> <binding protocol="https" bindingInformatoin="*:443:SomeSite" /> </bindings> </site>