IIS6:网站提供错误的 SSL 证书

IIS6:网站提供错误的 SSL 证书

考虑安装有多个网站的 IIS6。每个网站都应是具有自己的证书(而非通配符证书)的不同子域。每个网站的主机标头均已正确指定。

  • foo.example.com- 端口 443。需要 SSL w/128 位。正常工作!它正确地向浏览器显示其 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) 配置同一范围内的“全部未分配”的两个网站?

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

当不使用 SSL 时,浏览 可http://bar提供来自 的正确内容bar

仅为该 DMZ 服务器分配一个地址。

答案1

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

假设您已foo.example.com绑定到和Public IP A,但您的 Web 服务器只有 IP 地址 192.168.0.1bar.example.comPublic IP B

无论请求来自IP A还是IP B,它最终都会到达 192.168.0.1。这意味着 IIS 别无选择,只能使用分配给 的证书foo.example.com

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

首先,您需要启用静态 IP(作为服务器,我希望这样做),然后单击“高级”,在“IP 地址”框下单击“添加” - 并输入系统管理员为您分配的新 IP 地址(假设为192.168.0.2)。

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

然后,在您的 IIS 配置中,您需要将 SSL 证书从 绑定foo.example.com192.168.0.1,并将其余部分绑定到192.168.0.2(或者像您那样保留为“全部未分配”)。

如果这不起作用,或者您已经配置了此功能,请更新您的问题并留下评论让我们知道。

更新:我刚刚看到您的评论,感谢您的更新。您需要确保foo.example.combar.example.com位于两个不同的公共 IP 地址上。原因是由于数据包是加密的,因此您无法使用基于主机名的路由将请求发送到正确的 IP 地址(我相信是这种情况。如果有人知道不同,请告诉我)。路由器唯一可见的请求部分是目标 IP。这就是为什么每个 IP 地址只能有一个 SSL。因此,您需要有公共 IP 才能使其工作,并且在您的 DNS 中,该 IP 的 A 记录bar.example.com与 不同foo.example.com

答案2

为了支持寻路者,索特

虽然证书不与 IP 地址绑定,但必须为域分配唯一的 IP 地址SSL 基于 IP,无法解析基于名称的虚拟主机

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

答案3

听起来“bar”要访问的 IP 地址和“foo”使用的 IP 地址相同。由于“foo”专门配置为在该 IP 地址上应答,因此它会抓取请求。“主机标头”不适用于 SSL 请求(这就是为什么 IIS 为标准请求提供了一个单独的面板,其中包含 ip/host/port 映射,并为 ssl ip/port 映射提供了一个单独的面板,但没有主机名)。

检查您的 DNS 记录并确保“bar”使用与“foo”不同的 IP,这样您的问题就应该得到解决。

当我配置 SSL 站点时,我会为每个需要 SSL 的域分配一个自己的 IP 地址,而对其他所有域使用“通用”IP。当然,DNS 记录需要使用正确的地址,以便 IIS 中的正确站点条目能够处理流量。

相关内容