IIS6:网站呈现错误的SSL证书

考虑一个具有多个网站的IIS6安装。 每个打算成为一个不同的子域与自己的证书(而不是通配证书)。 每个都有正确指定的主机头。

  • foo.example.com – 端口443.要求SSL w / 128位。 好好工作! 它向浏览器正确显示SSL证书。 configuration为一个特定的IP地址

  • bar.example.com – 端口443.要求SSL w / 128位。 configuration所有未分配的地址。 在检查IIS属性页面时,它将在“查看证书”button上完整显示bar.example.com的证书。 这是一个新的网站,有证书问题。 它提供了foo.example.com的证书。 哎哟!

替代文字http://www.imagechicken.com/uploads/1251156847014486300.png

问题:您是否可以在同一个端口(443)上拥有多个在不同网站上运行的具有SSL证书的子域? 你将如何在同一个端口(443)的“全部未分配”范围内configuration2个网站?

更新:忽略证书错误,浏览到https://bar ,所提供的内容来自https://foo站点。

不使用SSL时,浏览到http://bar将从bar提供正确的内容。

只有一个地址被分配给这个DMZ服务器。

SSL证书绑定到Web服务器的内部IP地址,而不是外部IP地址。

假设您已将foo.example.com绑定到Public IP A上的Public IP Abar.example.com ,但是您的Web服务器只有IP地址192.168.0.1

无论请求是来自IP A还是IP B ,它仍然会以192.168.0.1结束。 这意味着IIS别无select,只能使用分配给foo.example.com的证书。

要解决此问题,您将需要分配给您的Web服务器的多个IP地址。 这很容易做到。 告诉系统pipe理员从DHCP范围中删除一些IP(或询问他/她可以使用哪些IP),然后转到networking属性(控制面板>networking连接),然后转到TCP属性/ IP。

首先需要启用一个静态IP(作为一个我希望这样做的服务器),然后单击高级,在“IP地址”框下单击“添加” – 然后input新的IP地址你已经被你的系统pipe理员分配了(比方说192.168.0.2 )。

然后,在您的路由器上,您需要确保来自端口443上的IP A请求转至192.168.0.1并且端口443上的所有其他请求转至192.168.0.2

然后,在您的IISconfiguration中,您需要将foo.example.com的SSL Cert绑定到192.168.0.1 ,并将其余的绑定到192.168.0.2 (或者保留为All Unassigned,就像您一样)。

如果这不起作用,或者您已经configuration好了,请更新您的问题并发表评论以告诉我们。

更新:我刚刚看到您的意见,感谢您的更新。 您需要确保foo.example.combar.example.com位于两个不同的公共IP地址上。 原因是因为数据包是encryption的,所以你不可能使用基于主机名的路由发送请求到正确的IP地址(我相信是这样,如果有人知道不同,请告诉我)。 对路由器可见的请求的唯一部分是目标IP。 这就是为什么每个IP地址只能有一个SSL。 因此,您需要拥有公共IP才能正常工作,而在您的DNS中, bar.example.com的logging与foo.example.com不同。

为了支持Thawte的Farseeker:

虽然证书不绑定到IP地址,但必须将唯一IP地址分配给域,因为SSL是基于IP的,并且不会parsing为基于名称的虚拟主机

如果您的服务器只有一个IP地址,则“ 全部未分配 ”无能为力,只能指向同一个单一的IP地址。

这听起来像“酒吧”是去“foo”使用相同的IP地址。 由于“foo”专门configuration为回答该IP地址,因此抓取该请求。 “主机头”不适用于SSL请求(这就是为什么IIS有ip / host / port映射和ssl ip / port映射的标准请求的单独面板,但没有主机名的原因)。

检查您的DNSlogging,并确保“酒吧”使用来自“富”的不同的IP,你的问题应该纠正。

当我configurationSSL站点时,我给每个需要SSL自己IP地址的域,并且使用一个“通用”IP来处理其他事情。 当然,DNSlogging需要使用正确的地址,以便IIS中正确的站点条目处理stream量。