Einsatz von Secure Sockets Layer in Testumgebungen

26. August 2010

Wer über keine Zertifizierungsstelle (CA, Certificate Authority) oder eine PKI (Public Key Infrastructure) verfügt, der sollte trotzdem den Einsatz von SSL (Secure Sockets Layer) erst auf einer Testwebsite prüfen. Dabei stellt sich dann die Frage: Muss man dazu ein Zertifikat – etwa bei Verisign – kaufen oder gibt es einen anderen Ausweg? Jan DeClercq zeigt eine elegante Lösung für diese Herausforderung: Generell bietet Microsoft beim IIS 7.0 die Möglichkeit, selbst signierte Zertifikate zu erstellen.

Im konkreten Fall sollte eine Website mit SSL-Funktionalität aufgesetzt werden. Als Webserver fungierte der IIS 7.0 (Internet-Informationsdienste), es war in der Testumgebung keine CA oder PKI verfügbar. Zudem war der Kauf eines Zertifikats von einem entsprechenden Anbieter aus Kostengründen nicht gewünscht. Auch die Arbeit mit einem Test-Zertifikat von einem kommerziellen Anbieter wurde für die Testumgebung verworfen.

Daher galt es einen Ausweg aus dieser Situation zu finden. Generell bietet Microsoft beim IIS 7.0 die Möglichkeit, selbst signierte Zertifikate zu erstellen. Damit lassen sich recht einfach Webserver-Zertifikate erzeugen, ohne dass eine aufwändige Infrastruktur mit CA und PKI zu betreiben wäre.

Selbst-signiertes Zertifikat löst das Problem

Dazu muss der Administrator derartige Zertifikate im Bereich der Server-Zertifikate (Server Certificates) im MMC-Snap-in mit dem IIS-Manager anlegen. In diesem Bereich ist im linken Bildschirmbereich des Snap-ins in das Stammverzeichnis (also das Root-System) zu gehen. Dann muss der Administrator im rechten Bildschirmbereich das Icon mit den Server-Zertifikaten (Server Certificates) selektieren. Der Bereich mit den Server-Zertifikaten führt alle Zertifikate auf, die auf dem System registriert sind. Zudem ist hier auch das Importieren und Erzeugen von Zertifikaten möglich.

Um ein selbst-signiertes Zertifikat anzulegen ist im Aktionsbereich des IIS-Verwaltungs-Tools diese Aufgabe anzuklicken (Create Self-Signed Certificate). Der IIS fordert dann dazu auf, einen Namen für das Zertifikat zu vergeben. Mit einem Klick auf OK erzeugt der IIS dann automatisch ein selbst-signiertes Zertifikat auf dem System.

Ist dann ein SSL-Zertifikat auf dem System mit dem IIS eingetragen, bleibt noch etwas zu tun: Für die Website selbst muss SSL aktiviert werden. Dazu muss der Administrator die betreffende Website im entsprechenden Knoten (erneut im linken Bildschirmbereich des Snap-ins mit der IIS-Verwaltung) anklicken und dann auf den Verweis mit den Bindings (der liegt im Aktionsbereich des Snap-ins) klicken.

Danach erscheint eine Dialogbox, die alle Regeln für die Bindings angibt. Um für eine Website die SSL zu aktivieren, muss man auf den Schalter "Hinzufügen" (Add) klicken. Danach erscheint eine weitere Dialogbox für diese Aufgabe (Add Web Site Binding), mit deren Hilfe sich die Unterstützung für das Protokoll https hinzufügen lässt. Im Rahmen dieses Dialogs sind noch weitere Angaben nötig. Beim Typus ist https anzugeben und beim Eintrag für das SSL-Zertifikat muss man das zuvor erzeugte (selbst-signierte) Zertifikat angeben.

Auf eine Kleinigkeit ist allerdings zu achten. Es hängt damit zusammen, wie der IIS 7.0 selbst-signierte Zertifikate anlegt: Der IIS 7.0 erzeugt das SSL-Zertifikat mit dem lokalen Computernamen und zwar in Form des CN (Common Name).

Damit SSL korrekt funktioniert, sollte der CN des Zertifikats zur DNS-Adresse der Website passen. Doch in vielen Fällen lautet der DNS-Name der Website anders als der Computername. Wenn der CN des Zertifikats nicht zur DNS-Adresse der Website passt, wird der Browser meckern und den Benutzern mitteilen, dass etwas mit den SSL-Einstellungen nicht stimmt. In manchen Fällen wird der Browser sogar die Seite nicht öffnen.

Aber auch diese Klippe lässt sich umschiffen: Es gibt die Utility SelfSSL.exe. Mit ihr kann der Administrator ein selbst-signiertes SSL-Zertifikat für seinen Webserver erzeugen und es dann mit der Website verbinden. SelfSSL ist Bestandteil des IIS 6 Resource Kit und kann für die früheren IIS-Versionen verwendet werden, um selbst-signierte Zertifikate zu erzeugen. Dieser Resource Kit steht bei Microsoft zum kostenlosen Download bereit.

SelfSSL verfügt über die folgende Syntax:

selfssl /N:CN=<your_websitename> /V: <cert_validityperiod>
/S: <site_ID> /P: <portnumber>

Für die eigene Website ist natürlich das <your_websitename> entsprechen zu ersetzen (wie etwa test_nt4admins.internal.net). Bei <cert_validityperiod> ist die Anzahl der Tage anzugeben, für die das Zertifikat gültig sein soll. Als <site_ID> muss man die aktuelle ID für die Site angeben. Um diese Information zu bekommen, muss der Administrator im IIS-Manager-Snap-in zu den Knoten mit den Sites gehen – hier ist die ID für die Site im rechten Bildschirmbereich in der ID-Spalte zu finden. Die Angabe der <portnumber> ist ebenfalls noch nötig. Für das Protokoll https lautet dabei der Standardwert 443.

JanDeClercq/rhh

Lesen Sie auch