使用多个网站绑定和SSL设置IIS 7.5?

在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。 但是我有这些问题:

  1. 当我inputbeta.example.com时,我会看到go.example.com网站
  2. 我似乎无法一次添加SSL绑定到两个网站(我有一个* .example.com通配符证书)。 如果我将https绑定添加到testing版网站,testing版网站甚至不会启动。

这是我设置它的方式:

在这里输入图像说明

什么是正确的方式来设置它?

如果没有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>