IIS 7.5 SSL https - 调用其他站点时出现错误站点

IIS 7.5 SSL https - wrong site appears when calling other site

IIS 7.5

non-ssl-test.com 仅是端口 80,secure-site.com 仅是端口 443

如果调用正确,两者都有效:http://non-ssl-test.com & https://secure-site.com

但是,如果我调用 https://non-ssl-test.com 并接受证书警告,则会出现 secure-site.com 的内容。

卧槽,我要https://non-ssl-test.com失败!

IIS 未获得对 SNI until IIS 8.0 的支持。没有 SNI,IIS 无法理解如何处理同一 IP 地址上的两个不同主机。

您可以使用较新版本的 Windows 和 IIS,或者为您的站点使用两个单独的 IP 地址。

这正是 SSL/TLS 握手发生时 IP 映射的工作方式。

https://www.jexusmanager.com/en/latest/tutorials/https-binding.html#ip-based-bindings

由于 IIS 7.x 没有 SNI,所有 HTTPS 请求都转到基于 IP 的映射。 Web 浏览器会看到您在那里绑定的证书,并显示他们想要的任何内容 warnings/errors。 TLS 握手发生得太早,浏览器会立即提示,因此您无法在 IIS 上避免提示。

如果您希望 https://non-ssl-test.com 完全失败,您必须修改站点绑定,使其完全没有基于 IP 的 SSL 绑定。就像其他答案表明的那样,这通常意味着需要另一个 IP 地址,

  • 将两个站点绑定到不同的 IP 地址。
  • 将证书绑定到您喜欢的 IP 地址,而不是其他 IP 地址。

然后HTTPS 请求到第二个IP 没有任何证书,将如您所愿失败。