我们有一个运行两个网站的 Web 服务器,我将它们称为 domain.com 和 test.domain.com。我们在 domain.com 网站上安装了 SSL 证书,该证书涵盖 www.domain.com 和 domain.com。测试网站没有 SSL 证书。
当导航到 http:// test.domain.com 时,我们可以成功到达测试站点。但是,当导航到 https:// test.domain.com 时,所有流量都会重定向到 https:// domain.com,用户或多或少都不知道。这可能会让某人误以为他正在测试站点上工作,而实际上更改是在生产中进行的。
服务器运行的是 IIS 6。测试站点没有配置 SSL 端口。两个站点的主机头分别为 domain.com 和 test.domain.com。
如何确保 https:// test.domain.com 不会重定向到 https:// domain.com?
答案1
您可以使用 SSL 主机头,即使使用不受信任/非 SAN/非通配符证书。
答案2
无法使用主机标头分配 SSL 站点,因为标头已加密。SSL 站点响应其所在的 ip+端口。因此,它之所以响应,是因为它们位于共享 IP 上,而不是因为它被重定向。
您需要在单独的 IP 上运行网站,或者在网站逻辑中添加一些内容,当发现有人使用了错误的 URL 时,就从 https 重定向到 http。
答案3
这两个网站是否使用相同的 IP?如果不是,只要您告诉浏览器使用 HTTPS,服务器就无法判断您想要的是 test.domain.com 还是 domain.com。这是因为,正如 James 提到的,主机标头是加密的。因此,无论 SSL 证书分配给哪个网站,都会响应该站点。因此,最好的尝试是编辑元数据库并明确将主机标头添加到 domain.com 的端口 443 绑定。基本上是这样的:http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/8d9f2a8f-cd23-448c-b2c7-f4e87b9e2d2c.mspx?mfr=true
然后当你访问https://test.domain.com除非您最终向 test.domain.com 网站添加 SSL 证书,否则根本无法访问有效的网站。