考虑一个带有多个网站的 IIS6 安装。每个都旨在成为具有自己证书(不是通配符证书)的不同子域。每个都有正确指定的主机头。
foo.example.com
- 端口 443。需要带 128 位的 SSL。好好工作!它将其 SSL 证书正确地呈现给浏览器。为特定 IP 地址配置。bar.example.com
- 端口 443。需要带 128 位的 SSL。为所有未分配的地址配置。检查 IIS 属性页时,它会bar.example.com
在“查看证书”按钮上完全显示证书。这是一个存在证书问题的新网站。它正在为 foo.example.com 提供证书。哎哟!
替代文字 http://www.imagechicken.com/uploads/1251156847014486300.png
问题:您可以在同一端口(443)上使用 SSL 证书在不同网站上运行多个子域吗?您将如何在同一端口 (443) 的“全部未分配”的同一范围内配置 2 个网站?
更新:忽略证书错误,浏览到时https://bar
,提供的内容来自https://foo
站点。
不使用 SSL 时,浏览以http://bar
提供来自bar
.
只有一个地址分配给这个 DMZ 服务器。
SSL 证书绑定到 Web 服务器的内部 IP 地址,而不是外部 IP 地址。
假设您已
foo.example.com
绑定到Public IP A
和bar.example.com
onPublic IP B
,但您的 Web 服务器只有 IP 地址 192.168.0.1无论请求是 on
IP A
还是IP B
,它仍然会在 192.168.0.1 结束。这意味着 IIS 别无选择,只能使用分配给foo.example.com
.要解决此问题,您需要为 Web 服务器分配多个 IP 地址。这很容易做到。与您的系统管理员交谈,将一些 IP 从 DHCP 范围中删除(或询问他/她您可以使用哪些 IP),然后转到网卡的属性(控制面板 > 网络连接),然后转到 TCP 的属性/IP。
您首先需要启用一个静态 IP(作为服务器,我希望无论如何都可以这样做),然后单击“高级”,然后在“IP 地址”框下单击“添加” - 并输入新的 IP 地址您已由系统管理员分配(假设
192.168.0.2
)。然后,在您的路由器上,您需要确保来自端口 443 的请求发送
IP A
到端口 443 上192.168.0.1
的所有其他请求192.168.0.2
。然后,在您的 IIS 配置中,您需要将 SSL 证书从绑定
foo.example.com
到192.168.0.1
,并将其余的绑定到192.168.0.2
(或保留为 All Unassigned,就像您一样)。如果这不起作用,或者您已经进行了配置,请更新您的问题并发表评论让我们知道。
更新:我刚刚看到您的评论,感谢您的更新。您需要确保
foo.example.com
并且bar.example.com
位于两个不同的公共 IP 地址上。原因是因为数据包是加密的,所以您无法使用基于主机名的路由将请求发送到正确的 IP 地址(我相信是这种情况。如果有人知道不同,请告诉我)。对路由器可见的请求的唯一部分是目标 IP。这就是每个 IP 地址只能有一个 SSL 的原因。因此,您需要拥有公共 IP 才能使其正常工作,并且在您的 DNS 中,A 记录bar.example.com
与foo.example.com
.为了支持 Farseeker,来自Thawte:
如果您的服务器只有 1 个 IP 地址,则“所有未分配”只能指向同一个 IP 地址。
听起来“bar”将与“foo”使用相同的 IP 地址。由于“foo”被专门配置为响应该 IP 地址,因此它会抓取请求。“主机标头”不适用于 SSL 请求(这就是为什么 IIS 有一个单独的面板用于标准请求的 ip/host/port 映射和另一个用于 ssl ip/port 映射的面板,但没有主机名)。
检查您的 DNS 记录并确保“bar”使用与“foo”不同的 IP,您的问题应该得到纠正。
当我配置 SSL 站点时,我为每个需要 SSL 的域提供了自己的 IP 地址,并为其他所有内容使用“公共”IP。当然,DNS 记录需要使用正确的地址,这样 IIS 中的正确站点条目才能处理流量。