« 一个容易忽视的存储过程问题Oct »

可以在需要 SSL 的站点上使用主机头吗?

来自微软官方的教程.

问:我有一个有关 IIS 与主机头以及独立 IP 地址的问题。我们目前在两台 NT 服务器上运行两个独立的网站,一个是 http://site,另一个是 https://site。我们购买了一台新的服务器上,操作系统是 Windows 2000。我们现在力图确定该如何从新的服务器上操作这两个网站。是应该使用主机头和一个 IP 地址,还是该使用两个独立的 IP 地址?我读过 187504,其中讨论了有关使用主机头以及 IIS 5.0 和 SSL 的问题,如果使用相同 IP 地址、不同的端口,似乎就可以使用这种方法。但是我不太理解,这是不是意味着推荐同时使用 SSL 和主机头?

答:让我们回顾一下 SSL 和主机头的问题,因为对 IIS 来说,这个问题一直在常见问题及解答的头五个中。

当客户端发出一个到 IIS 服务器的 HTTP 连接请求时,这个客户端请求中包含了一个叫做“HOST:"的字段,其中包括了在 URL 中请求的 Web 服务器。例如,如果请求的目的地是 http://www.microsoft.com,浏览器会将请求发送到这台服务器,并一同提交 HTTP 头(HOST: http://www.microsoft.com)中的其他信息。因为此字段的名称是“HOST",并且它位于客户端的 HTTP 头部,所以我们把它称作“主机头"。

如果客户端请求建立一个 SSL 连接,主机头字段仍然会包括在请求当中,只不过它被包含在数据包的加密部分(在应用层中),因此 Web 服务器无法对其进行解密,以确定应该将请求发送到哪一个 Web 站点。

这就产生了一条牢不可破的规则:当使用 SSL 时,不能使用主机头来作为识别 Web 站点的主要手段。我不知道您听说的是什么情况,但事实就是这样。

如果您确实想同时使用主机头和 SSL,那么会发生什么情况呢?以下面的配置为例。您有两个 Web 站点,其中一个不使用主机头,另一个则使用。两个站点都使用相同的 IP 地址,并且都配置为使用证书。当您利用 SSL 访问使用主机头的站点时,第一个 Web 站点会对此做出响应。之所以发生这种情况是因为:我们使用 IP 地址来识别您希望用来建立连接的站点,而不是主机头。因为第一个站点对 IP 地址和 HTTPS 做出了响应,所以它接受了请求。如果需要主机头的第一个 Web 站点在不同的 IP 地址上,或者没有证书,那么连接将会失败。

因此,请考虑您的配置,只要不在需要 SSL 的站点上使用主机头,其他无需顾虑太多。

原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]

相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。