fragen stichworte

SNI kann nicht unter Windows Server 2012 deaktiviert werden

Ich habe zwei verschiedene "Familien" verwandter Sites, jede mit ihrem eigenen UCC-Zertifikat auf demselben Server.

Ich hoste sie auf demselben IIS-Server und verwende eine IP-Adresse für jede Familie.

Beide UCC-Zertifikate stammen von GoDaddy.

Für jede der Bindungen (für jedes SAN in der UCC) ist die Angabe "Servername erforderlich" deaktiviert.

enter image description here

Wenn ich jedoch versuche, die Website vom IE 8 unter Windows XP aus aufzurufen, funktioniert nur eine der "Familien" von Websites. Der andere verhandelt einfach nicht.

Bei der Analyse von SSL auf SSLLabs.com erhalte ich folgendes Ergebnis: "Diese Seite funktioniert nur in Browsern mit SNI-Unterstützung."

Aber wie ist das möglich! Ich habe 'Require SNI' für alle: 443-Bindungen deaktiviert.

Ich habe mir die Datei applicationHost.config angesehen und es gibt keine einzige Site mit sslFlags="1", die darauf hinweist, dass diese Einstellung aktiviert ist. Ja, ich habe auch IIS neu gestartet.

Was ist los? Ich bin sehr ratlos. Ich frage mich, ob ich SNI auf dem Server irgendwie vollständig deaktivieren kann oder was dies ausgelöst hätte. Ich habe gestern einige Monate Windows-Updates durchgeführt, aber ich bin ehrlich gesagt, ich glaube, das war lange Zeit so, ohne dass ich es merkte - basierend auf einem Umsatz von 0 US-Dollar von IE8 XP-Clients

Bearbeiten: Ich glaube wirklich, dass mein IIS beschädigt wurde. Wenn ich netsh http show sslcert starte, hat jede einzelne Bindung die Form IP: Port. Gemäß diesem Artikel wenn SNI aktiviert ist, würde ich hostname:port sehen und ich sehe keine Einträge in diesem Format. Es gibt auch keine Einträge in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslSniBindingInfo in der Registrierung - aber ich habe bestätigt, dass hier ein neuer erstellt wird, wenn ich vorübergehend eine SNI-Bindung hinzufüge.

IP:port                      : 10.0.0.2:443
Certificate Hash             : d59a149e6678bc10d62093401c5b705cc23094be
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

enter image description here

antworten

Eine Sache, die ich nicht erwähnt habe, war, dass ich den IIS Centralized Certificate Store verwende - was sich als wichtig herausstellte.

Stellen Sie sich für meine Websites vor, dass dies die folgenden Gruppen sind (die IP ist intern und wird durch die Firewall zugeordnet).

Group A : red.com, blue.com, green.com   (UCC certificate A)  10.0.0.1
Group B : cat.com, dog.com, mouse.com    (UCC certificate B)  10.0.0.2

Gruppe A ist die Gruppe, die so arbeitet, wie ich es wollte (ohne zu melden, dass SNI erforderlich ist). Gruppe B hat auf XP mit IIS 8 nicht funktioniert.

In meinem Zertifikatsspeicher habe ich mehrere Kopien jedes Zertifikats (nur pfx -Dateien im Dateisystem).

red.com.pfx blue.com.pfx green.com.pfx usw. für alle Sites

Wenn ich den Befehl netsh http show sslcert ausführte, stellte sich heraus, dass es nur einen Eintrag für 10.0.0.1:443 gab und nicht einen für 10.0.0.2:443. Dies ist das, was das unterschiedliche Verhalten an jedem Standort verursacht hat.

IP:port                      : 10.0.0.1:443
Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

Warum wurde für diese IP ein Eintrag angezeigt? Ich hatte auch eine zusätzliche Bindung auf einer anderen Website mit demselben Zertifikat für dieselbe IP-Adresse (zur Weiterleitung von Nicht-SSL zu SSL).

Ich denke, IIS geht davon aus, dass, wenn Sie den zentralisierten Speicher verwenden, den Sie SNI verwenden, dies implizit zu melden scheint, dass dies erforderlich ist - obwohl dies wirklich nicht der Fall ist.

Ich konnte dieses Problem schließlich lösen, indem Sie eine meiner Bindungen für Gruppe B änderten, um das Zertifikat explizit zu referenzieren, anstatt es nur im Laden zu suchen. Danach war natürlich der 10.0.0.2:443 -Eintrag in der netsh http show sslcert -Liste vorhanden und die Seite funktionierte von XP aus gut :-)

enter image description here

(Ich musste dies nur für dog.com tun. Die anderen Tierstandorte werden immer noch den zentralen Speicher verwenden).