设置具有多个网站绑定和 SSL 的 IIS 7.5?

设置具有多个网站绑定和 SSL 的 IIS 7.5?

在 IIS 7.5 上,我尝试通过两个网站实现此目的:

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. 当我输入 beta.example.com 时,我看到的是 go.example.com 网站
  2. 我似乎无法同时将 SSL 绑定添加到两个网站(我只有一个 *.example.com 通配符证书)。如果我将 https 绑定添加到测试版网站,它甚至无法启动。

我的设置方式如下:

在此处输入图片描述

正确的设置方法是什么?

答案1

没有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 错误(当我们将另一台主机绑定到其他端口时,这种情况就不会再发生了)。也许从那时起它就被修复了。

答案2

虽然这是一个老问题,但我最近也需要完成同样的事情。可以在 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>

答案3

服务器名称指示在 IIS 7 或 7.5 中尚不支持。希望他们能在下一个 IIS 中实现此功能:http://forums.iis.net/p/1161905/1923273.aspx

相关内容