我有一个网站,可以在互联网和本地网络上访问。在本地网络上 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