
Ich habe eine Website, die sowohl im Internet als auch in einem lokalen Netzwerk erreichbar ist. Im lokalen Netzwerk erzeugt ein Ping an den Servernamen eine andere IP-Adresse als wenn ich ihn aus dem offenen Internet anpinge.
Ich habe eine Situation, in der die Website mit einem anderen SSL-Zertifikat bereitgestellt wird, je nachdem, von wo aus der Client-Browser die Site anzeigt. Beide Serverzertifikate sind sichtbar, wenn ich mir die Serverzertifikate des Servers in IIS ansehe. Aber soweit ich das beurteilen kann, ist nur eines der Zertifikate in seinen Bindungen für die Website angegeben. Wie kann dieses andere Zertifikat auch an die Website gebunden sein, wenn sie vom lokalen Netzwerk aus angezeigt wird?
Gibt es außerdem eine Möglichkeit, auf einem Windows-Server zu ermitteln, an welche Sites ein bestimmtes Serverzertifikat gebunden ist? (Das heißt, mit dem Zertifikat zu beginnen und nach der Site zu suchen, und nicht in die andere, üblichere Richtung?)
Antwort1
Zu Ihrer zweiten Frage könnten Sie in PowerShell Folgendes tun:
Holen Sie sich den Fingerabdruck für das Zertifikat, an dem Sie interessiert sind:
$tp = (Get-ChildItem Cert:\LocalMachine\my | Where-Object Subject -eq "cn=www.stackoverflow.com").Thumbprint
Der Befehl netsh http show sslcert
listet alle Zertifikatbindungen auf, filtert die Ausgabe jedoch mit vielen zusätzlichen Informationen:
netsh http show sslcert | Select-String -Pattern $tp -SimpleMatch -Context 1,0
Wir suchen nach dem Fingerabdruck und zeigen auch eine Zeile vor der übereinstimmenden Zeile an, aber keine Zeilen danach.
Dadurch erhalten Sie die Bindungsinformationen, mit deren Hilfe Sie die Website finden können, für die sie verwendet werden.
Get-ChildItem IIS:\SslBindings\ | Where-Object Port -eq 443 | Where-object Host -eq www.foo.com