根据浏览器在 IIS 中的位置为同一站点提供不同的 SSL 证书

根据浏览器在 IIS 中的位置为同一站点提供不同的 SSL 证书

我有一个网站,可以在互联网和本地网络上访问。在本地网络上 ping 服务器名称时,得到的 IP 地址与从开放互联网 ping 服务器名称时得到的 IP 地址不同。

我遇到的情况是,根据客户端浏览器查看网站的位置,网站使用不同的 SSL 证书。当我从 IIS 中查看服务器的服务器证书时,可以看到两个服务器证书。但据我所知,在网站的绑定中只指定了一个证书。从本地网络查看时,如何将另一个证书也绑定到网站?

此外,Windows Server 上是否有办法确定特定服务器证书绑定到哪些站点?(也就是说,从证书开始寻找站点,而不是其他更常见的方向?)

答案1

对于第二个问题,您可以在 PowerShell 中执行如下操作:

获取您感兴趣的证书的指纹:

 $tp = (Get-ChildItem Cert:\LocalMachine\my | Where-Object Subject -eq "cn=www.stackoverflow.com").Thumbprint

该命令netsh http show sslcert列出了所有证书绑定,但包含大量额外信息,请过滤输出:

netsh http show sslcert | Select-String -Pattern $tp  -SimpleMatch -Context 1,0

我们搜索指纹,并在匹配行之前显示一行,但在匹配行之后不显示任何行。

这将为您提供绑定信息,您可以使用该信息来找到它所使用的网站。

Get-ChildItem IIS:\SslBindings\ | Where-Object Port -eq 443 | Where-object Host -eq www.foo.com

相关内容