
我有一個可以透過網路和本地網路存取的網站。在本機網路上,對伺服器名稱執行 ping 操作會產生與從開放網際網路 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