考虑具有多个网站的IIS6安装。每个子域都有自己的证书(不是通配符证书)。每个主机头都有正确的指定。
foo.example.com -端口443。需要SSL w/128位。正常工作!它正确地向浏览器显示其SSL证书。为特定的IP地址配置。bar.example.com -端口443。需要SSL w/128位。为所有未分配地址配置。当检查IIS属性页时,它将在“查看证书”按钮上完全显示“bar.example.com证书证书”。这是一个有证书问题的新网站。它展示了foo.example.com的证书。唉哟!丙氨酸氨基转移酶(alt文本文本)
问:您是否可以拥有多个子域(443),它们都运行在具有SSL证书的单独网站上?如何在同一端口(443)相同范围的“所有未分配”的网站上配置2个网站?
更新:忽略证书错误,当浏览到https://bar时,所提供的内容来自https://foo站点。
当不使用SSL时,浏览到http://bar将提供来自bar的正确内容。
只有一个地址分配给这个DMZ服务器。
发布于 2009-08-24 22:22:40
SSL证书绑定到web服务器的内部IP地址,而不是外部IP地址。
假设您将foo.example.com绑定到Public IP A和Public IP B上的bar.example.com,但是您的web服务器只有IP地址192.168.0.1
无论请求是在IP A上还是在IP B上,它仍然会以192.168.0.1结束。这意味着IIS别无选择,只能使用分配给foo.example.com的证书。
要解决此问题,您需要为您的web服务器分配多个IP地址。这很容易做到。与您的sysadmin交谈,从DHCP范围中删除一些IP(或者询问他/她您可以使用哪些IP),然后转到您的网卡属性(Control >),然后转到TCP/IP的属性。
首先您需要启用静态IP (作为一台服务器,我希望无论如何都是这样),然后单击Advanced,然后在"IP地址“框下单击"Add”,然后输入您的sysadmin分配的新IP地址(假设是192.168.0.2)。
然后,在您的路由器上,您需要确保端口443上的IP A请求转到192.168.0.1,端口443上的所有其他请求都转到192.168.0.2。
然后,在您的IIS配置中,您需要将SSL从foo.example.com绑定到192.168.0.1,并将其余的绑定到192.168.0.2 (或者保持所有未分配的状态,就像您所做的那样)。
如果这不工作,或者您已经配置了这个,更新您的问题,并留下一个评论,让我们知道。
更新:我刚看到你的评论,谢谢你的更新。您需要确保foo.example.com和bar.example.com位于两个不同的公共IP地址上。原因是,由于数据包是加密的,所以您无法使用基于主机名的路由将请求发送到正确的IP地址(我相信是这样的)。如果有人知道不同,请告诉我)。请求中唯一对路由器可见的部分是目标IP。这就是为什么每个IP地址只能有一个SSL的原因。因此,您需要有公共IP才能工作,并且在您的DNS中有一个与bar.example.com不同的foo.example.com记录。
发布于 2009-08-24 22:32:05
为了支持法尔探索者,来自塔特:
尽管证书没有绑定到IP地址,但必须将唯一的IP地址分配给域,因为SSL是基于IP的,并且不解析为基于名称的虚拟主机。
如果您的服务器只有一个IP地址,“所有未分配的”只能指向相同的单一IP地址。
发布于 2009-08-25 01:06:28
听起来"bar“与"foo”使用的IP地址相同。由于"foo“被专门配置为在该IP地址上回答,所以它会获取请求。“主机标头”不适用于SSL请求(这就是为什么IIS有一个单独的面板用于标准请求和ip/主机/端口映射,另一个面板用于ssl ip/端口映射,但没有主机名)。
检查您的DNS记录,并确保"bar“正在使用与"foo”不同的IP,您的问题应该得到纠正。
在配置SSL站点时,我为每个需要SSL的域提供自己的IP地址,并为其他所有内容使用“公共”IP。当然,DNS记录需要使用正确的地址,以便IIS中正确的站点条目处理通信量。
https://serverfault.com/questions/58163
复制相似问题