- 在Windows 2000 Server上,当一个站点需要SSL时,我怎样才能在相同的站点上使用主机头?
-
发布时间:2010-12-02 09:24:55
发布时间:2010-12-02 09:24:55
让我们回顾一下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的相同站点上,只要不使用主机头,你就可以做任何想做的事情。