IIS 为 HTTPS 请求提供了错误的证书

IIS 为 HTTPS 请求提供了错误的证书

我陷入了无法解决的困境。这是我的问题。

我从一家值得信赖的机构获得了 SSL 证书,并将其安装在我的服务器上。然后,我将我的网站配置为在端口 443 上使用该证书,并使用未使用的 IP 地址。

然后,我导航到我的网站以查看它是否正常工作,但我发现 IIS 为该请求提供了错误的证书。因此,浏览器阻止了响应的呈现。

我认为 IIS 在配置时出现错误,并使用以下命令检查了证书映射:

netsh http show sslcert

我获得证书哈希并运行以下命令来查看该证书是否是我需要的证书:

get-item cert:\LocalMachine\My\DC0D3FF5D752CD58FD291C48F30646FD9E0D8AED

这确实是我需要的。但奇怪的是,当我浏览网页时,我仍然会得到错误的证书。

您能告诉我还应该查找什么地方以及这可能是什么原因造成的吗?

答案1

只是为了让其他无法使用上述解决方案解决问题的人跟进这个问题,我遇到了类似的问题,即服务器为具有主机标头值的网站的 HTTPS 连接提供了错误的证书。

就我的情况而言,绑定设置为接收来自 * 的连接,而不是实际的服务器 IP 地址。将绑定修改为绑定到 IP 地址即可解决该问题。

答案2

我们遇到了同样的问题,在具有多个使用 SNI 的 https 站点的 Win2012 R2 服务器上,https 网站提供了错误的证书。

即使修改 hosts 文件并将主机头重定向到网站上使用的 IP 地址,我们仍然会收到来自另一个站点的证书,因此这里不存在 DNS 问题。

事实证明,我们从中收到(错误)证书的网站在同一个 IP 上有一个绑定,并且 SNI 已关闭,因此该证书显然被视为“默认”证书。

检查此站点绑定上的 SNI 解决了其他站点上的问题。

答案3

讽刺的是,在我提交这个问题后,答案突然出现在我愚蠢的脑袋里。DNS 主机 A 记录指向错误的 IP 地址,这就是我获得错误证书的原因。更改了 DNS 主机 A 记录的 IP 地址,现在一切正常。

答案4

所以我遇到过一个与客户类似的情况。他们在 Windows Server 2012 R2 的 IIS 上托管了多个 HTTPS 站点。他们将内容分为重定向站点和 https 站点,因此您基本上会看到 HTTP 绑定,其中只有一个重定向到 https 站点。

他们遇到的情况是,只有一个网站可以正常工作,其他所有网站都出现故障(错误代码:ssl_error_bad_cert_domain)。我开始仔细查看证书,所有证书都有效,结果发现在正常工作的网站的重定向中,他们也有一个 https 重定向,这是导致问题的原因。一旦从他们的 http 重定向网站中删除唯一的 https 重定向,所有网站都可以重新正常工作。

因此,如果您有重定向,可能值得检查以确保它们执行您希望它们执行的操作。

为什么?

“由于所有 HTTPS 站点都在 SSL 证书绑定中使用 * 作为 IP,并且客户添加了一个 SSL 绑定,该绑定将特定 IP 映射到重定向站点,因此 IIS 似乎决定将所有 HTTPS 流量传递到该重定向站点,因为它具有指定的 IP 地址,而其他站点没有。” - JT Shoupe

相关内容