IIS 8.0-Servernamensanzeige (Server Name Indication, SNI): SSL-Skalierbarkeit

von Shaun Eagan

Kompatibilität

Version Hinweise
IIS 8.0 Die Servernamensanzeige wurde in IIS 8.0 eingeführt.
IIS 7.5 Die Servernamensanzeige wurde in IIS 7.5 nicht unterstützt.
IIS 7.0 Die Servernamensanzeige wurde in IIS 7.0 nicht unterstützt.

Problem

Da mehr E-Commerce-Websites online gestellt werden und mehr Unternehmen vertrauliche Dokumente online speichern und freigeben, wird die Möglichkeit, sichere Websites zu hosten und zu skalieren, immer wichtiger. Vor Windows Server 2012 gab es einige Herausforderungen beim Hosten sicherer Websites:

  • SSL-Skalierbarkeit: In einer mehrinstanzenfähigen Umgebung, z. B. einer freigegebenen Hostingumgebung, gibt es eine Einschränkung, wie viele sichere Websites auf Windows Server gehostet werden können, was zu einer niedrigen Websitedichte führt.
  • IPv4-Knappheit: Da der Netzwerkendpunkt nur mit IP:Port-Bindung identifiziert werden kann, wobei Mandanten die Verwendung des standardmäßigen SSL-Ports 443 anfordern, bedeutet das Hosten einer sicheren Website häufig, eine dedizierte IP-Adresse pro Mandant anzubieten.

Lösung

IIS unterstützt unter Windows Server 2012 die Servernamensanzeige (SNI), bei der es sich um eine TLS-Erweiterung handelt, um eine virtuelle Domäne als Teil der SSL-Aushandlung einzuschließen. Dies bedeutet konkret, dass der Name der virtuellen Domäne oder eines Hosts zur Identifizierung des Netzwerkendpunkts verwendet werden kann. Darüber hinaus wurde ein hochgradig skalierbarer WebHosting-Speicher erstellt, um die SNI zu ergänzen. Das Ergebnis ist, dass die sichere Websitedichte unter Windows Server 2012 viel höher ist und mit nur einer IP-Adresse erreicht wird.

Es ist zu beachten, dass Ihre Clientbrowser die SNI unterstützen müssen, damit dieses Feature verwendet werden kann. Die meisten modernen Browser unterstützen die SNI; Internet Explorer (jede Version) unter Windows XP unterstützt die SNI jedoch nicht.

Schrittanweisungen

Voraussetzungen:

  • IIS 8.0 ist unter Windows Server 2012 installiert.

    • Sowohl der WebHosting-Zertifikatspeicher als auch die SNI sind Teil der standardmäßigen IIS-Installation. Es gibt kein bestimmtes IIS-Feature, das im Server-Manager installiert werden muss.
  • Beispielzertifikate.

  • \windows\system32\drivers\etc\hosts wurde so geändert, dass es für Beispielwebsites und -zertifikate verwendet werden kann. Wenn beispielsweise der CN-Name des Zertifikats TAPTesting ist, muss die Hostdatei Folgendes enthalten:

    127.0.0.1 TAPTesting
    

Problemumgehungen für bekannte Fehler:

Es gibt Ausnahmefälle, in denen der IIS-Manager eine unbeabsichtigte SSL-Bindung entfernen kann, wenn herkömmliche SSL-Bindungen (IP:Port) und SNI-Bindungen (Hostname:Port) auf demselben Computer konfiguriert sind. Um dieses Problem zu umgehen und/oder um die tatsächlichen SSL-Bindungen zu bestätigen, verwenden Sie das Befehlszeilentool:

netsh http show sslcert

Importieren von Zertifikaten in den Webhostingspeicher:

  1. Öffnen Sie MMC.
  2. Wählen Sie unter Datei die Option Snap-In hinzufügen/entfernen aus:
    Screenshot that shows the menu for File in M M C. Add Remove Snap in is highlighted.
  3. Wählen Sie Zertifikateaus. Klicken Sie aufHinzufügen:
    Screenshot that shows the Add or Remove Snap ins dialog box with Certificates selected under Available snap ins.
  4. Wählen Sie Computerkonto aus:
    Screenshot that shows the Certificates snap in dialog box. Computer account is selected.
  5. Wählen Sie Lokaler Computer aus, und klicken Sie auf Fertigstellen:
    Screenshot that shows the Select Computer dialog box. Local computer is selected.
  6. Klicken Sie auf OK:
    Screenshot that shows the Add or Remove Snap ins.
  7. Suchen Sie im Navigationsbereich nach Webhostingspeicher:
    Screenshot that shows Web Hosting highlighted under the Certificates node.
    Der Webhostingspeicher funktioniert wie der persönliche Speicher, sodass alle vorhandenen Tools zum Importieren und Exportieren von Zertifikaten auf die gleiche Weise funktionieren. Der Hauptunterschied zwischen dem Webhostingspeicher und dem persönlichen Speicher besteht darin, dass der Webhostingspeicher für die Skalierung auf eine höhere Anzahl von Zertifikaten entwickelt wurde.
  8. Importieren Sie Ihre Beispielzertifikate in den Webhostingspeicher.

Erstellen einer sicheren Website:

  1. Öffnen Sie den IIS-Manager.

  2. Wählen Sie im linken Navigationsfenster Websites aus:
    Screenshot that shows I I S Manager. Sites is selected.

  3. Klicken Sie mit der rechten Maustaste auf Websites, und wählen Sie Website hinzufügen aus:
    Screenshot that shows the context menu for Sites.

  4. Geben Sie die Informationen ein, wie Sie es bei der Erstellung einer beliebigen Website tun würden:

    • Websitename: Test

    • Physischer Pfad: c:\inetpub\wwwroot

    • Typ: https

    • Hostname: TAPTesting

      • Dies ist neu für Windows Server 8, dass der Hostname für SSL angegeben werden kann.
      • Stellen Sie sicher, dass der hier angegebene Hostname mit dem CN-Namen des Zertifikats übereinstimmt, um einen Übereinstimmungsfehler beim Zertifikatnamen zu vermeiden.
      • Der tatsächliche Wert dieser Konfiguration variiert je nach verwendetem Beispielzertifikat.
    • Servernamensanzeige verwenden: Ausgewählt

    • SSL-Zertifikat: Wählen Sie den Namen Ihres Zertifikats aus; Beispiel: TAPTesting.

      • Beachten Sie, dass die Zertifikate sowohl von persönlichen Speichern als auch von Webhostingspeichern dargestellt werden.

      Screenshot that shows the Add Website dialog box.

  5. Überprüfen Sie, ob die Website erstellt wurde:
    Screenshot that shows Test highlighted under the Sites node.

  6. Das ist alles. Die sichere Website wurde mithilfe der SNI erstellt. Die Verwaltungsoberfläche ist der herkömmlichen SSL-Bindung sehr ähnlich. Dies sind die einzigen Unterschiede:

    • Der Hostname kann für die SSL-Website angegeben werden.
    • Das Zertifikat wird im Webhostingspeicher zur Skalierbarkeit gespeichert.

Testen einer sicheren Website:

Öffnen Sie einen Browser, und navigieren Sie zu https://TAPTesting/. Beachten Sie, dass Ihre Hostdatei als Teil der Voraussetzung geändert werden sollte, um diese Anforderung an Localhost weiterzuleiten:

Screenshot that shows Internet Explorer. I I S 8 is written in large text on the web page.

Um den neuen SSL-Bindungstyp anzuzeigen, geben Sie außerdem Folgendes in ein Befehlszeilenfenster mit erhöhten Rechten ein:

netsh http show sslcert

Screenshot that shows a command window. Host name and port are highlighted.

Beachten Sie, dass die SSL-Bindung hostname:port mit dem Wert TAPTesting:443 ist.

Szenarien

Versuchen Sie, die folgenden Szenarien bereitzustellen:

  • Die SNI wurde so entwickelt, dass sie für eine mehrinstanzenfähige Umgebung skaliert ist. Versuchen Sie, Tausende sicherer Websites mithilfe der SNI zu konfigurieren.
  • Im Gegensatz zu früheren Versionen von Windows Server werden die Zertifikate unter Windows Server 2012 bei Bedarf in den Arbeitsspeicher geladen. Nachdem Sie Tausende von sicheren Websites mithilfe der SNI konfiguriert haben, senden Sie eine GET-Anforderung an eine der sicheren Websites, und überwachen Sie die Speicherauslastung. Es ist vernachlässigbar. Bei früheren Versionen von Windows Server, wenn Hunderte von Websites konfiguriert sind, würde das Senden nur einer GET-Anforderung dazu führen, dass der Windows Server alle Zertifikate lädt, was zu einer hohen Speicherauslastung führt und die Skalierbarkeit weiter einschränkt.
  • Konfigurieren Sie Windows Server 2012 sowohl mit der SNI als auch mit herkömmlichen sicheren Websites. Sie sind so entwickelt, dass sie koexistieren können.

Zusammenfassung

Sie haben das Feature für die Servernamensanzeige (SNI) in Windows Server 2012 erfolgreich untersucht.