
インターネットとローカル ネットワークの両方でアクセスできる Web サイトがあります。ローカル ネットワークでサーバー名を ping すると、オープン インターネットから ping したときとは異なる IP アドレスが生成されます。
クライアント ブラウザーがサイトを表示している場所に応じて、Web サイトが異なる SSL 証明書で提供される状況があります。IIS 内からサーバーのサーバー証明書を確認すると、両方のサーバー証明書が表示されます。しかし、私が知る限り、Web サイトのバインドで指定されているのは証明書の 1 つだけです。ローカル ネットワークから表示するときに、この別の証明書も Web サイトにバインドするにはどうすればよいでしょうか。
また、Windows Server 上で、特定のサーバー証明書がどのサイトにバインドされているかを判断する方法はありますか? (つまり、証明書から始めて、他のより一般的な方向ではなく、サイトを探すということですか?)
答え1
2 番目の質問については、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
サムプリントを検索し、一致する行の前の 1 行も表示しますが、それ以降の行は表示しません。
これにより、使用されている Web サイトを見つけるために使用できるバインディング情報が提供されます。
Get-ChildItem IIS:\SslBindings\ | Where-Object Port -eq 443 | Where-object Host -eq www.foo.com