SelfSSL

Hinweis:
Die SelfSSL erstellten eigene Zertifikate sind nicht sinnvoll in unternehmen einzusetzen, sondern eher für Entwickler oder Tests. für unternehmen könnten Sie besser ein Private CA einsetzen

Beim Einsatz mit Exchange 2007 können Sie mit "New-ExchangeCertificate" ein Selbstzertifikat erstellen und benötigen SelfSSL nicht mehr. Siehe auch E2K7:Zertifikate

Auf den Seiten IIS SSL einrichten aber auch CA installieren finden Sie hinweise, wie Sie ein Zertifikat im IIS einbinden. Oftmals ist aber der Aufwand, eine eigene CA zu installiert oder kostenpflichtig ein offizielles Zertifikat zu kaufen zu hoch, um "nur einmal schnell" die Verbindung zum Webserver per SSL zu verschlüsseln. für diesen Zweck gibt es das Programm SelfSSL.EXE. Mit diesem Programm können Sie ein Zertifikat für den Server ausstellen.

Achtung
Dieses Zertifikat erlaubt die Verschlüsselung von Daten zwischen dem Server und dem Client per SSL. Es stellt aber nicht sicher, dass sie überhaupt mit dem "richtigen" Server sprechen. Als Angreifer kann ich daher ebenfalls einen Server mit dem Namen installieren und mich selbst "zertifizieren" und so tun, als ob ich ihr Server wäre.

Bei der Verbindung per SSL warnt sie der Browser vor der nicht vertrauenswürdigen ausstellenden StammCA. Dies ist der Server selbst. Sie können dieser StammCA dann das Vertrauen aussprechen um spätere Rückfragen zu vermeiden. Kommt später dann doch mal eine Rückfrage, dann hat jemand ein neues Zertifikat auf dem gleichen Server oder auf einem anderen Server installiert. Das sollte Sie alarmieren.

Der Einsatz von SelfSSL ist daher primär die Verschlüsselung, ohne offizielles Zertifikat oder eigene Zertifikatsstelle (CA). Wenn Sie daher anderweitig sicherstellen, dass sie auf dem gewünschten Webserver gelandet sind, dann sind die Daten genauso gut gesichert, wie mit jedem anderen offiziellen Zertifikat.

Download und Installation

SelfSSL ist Bestandteil der IIS6 Resource Kit Tools, welches bei Microsoft kostenfrei zum Download bereit stellen

Internet Information Services (IIS) 6.0 Resource Kit Tools (5,8 MB)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499

Auch wenn das Programm im IIS6 Ressource Kit enthalten ist, so konnte ich damit auch auf meinem Windows XP IIS 5.1 problemlos ein Zertifikat einbinden. Ich habe nicht geprüft, ob dies auch auf dem IIS5 unter Windows 2000 funktioniert. Ansonsten bleibt hier der Weg über die eigene CA (Siehe  IIS SSL einrichten und CA installieren).

Zu installieren gibt es allerdings nicht viel. Das Ressource Kit installiert sich einfach nach "c:\Programme\IIS Ressource" und das Programm SelfSSL.EXE in das entsprechende unterverzeichnis. Zudem werden im Startmenü die Programme und entsprechende Hilfeanleitungen verknüpft.

SelfSSL starten

Rufen Sie einfach das Programm SelfSSL auf. Es fragt immer nach,  ob es ein bestehendes Zertifikat ersetzen soll, auch wenn noch keines installiert ist. Sie müssen daher einfach ein "Y" drücken.

Das Programm aktiviert dann auch gleich SSL auf der Webseite und Sie können sofort mit ihrem Browser per HTTPS auf den Server zugreifen. (Hier am Beispiel meines Notebooks)

Sie sehen aber schon, dass der Name des Zertifikats einfach der Servername ist und auch die Gültigkeit nur 7 Tage beträgt. Dass auch der Aussteller nicht vertrauenswürdig ist, können wir mit SelfSSL nicht ändern. Sie können nur das Zertifikat in die Liste der vertrauenswürdigen Stammzertifizierungsstellen aufnehmen, um diese Warnung zu vermeiden.

SelfSSL "richtig" starten

Also wiederholen wir die Aktion noch einmal und diesmal mit den richtigen Optionen, die SELFSSL auch selbst anzeigt

C:\Programme\IIS Resources\SelfSSL>selfssl /?
Microsoft (R) SelfSSL Version 1.0
Copyright (C) 2003 Microsoft Corporation. All rights reserved.

Installs self-signed SSL certificate into IIS.
SELFSSL [/T] [/N:cn] [/K:key size] [/S:site id] [/P:port]

/T Adds the self-signed certificate to "Trusted Certificates"
list. The local browser will trust the self-signed certificate
if this flag is specified.
/N:cn Specifies the common name of the certificate. The computer
name is used if not specified.
/K:key size Specifies the key length. Default is 1024.
/V:validity days Specifies the validity of the certificate. Default is 7 days.
/S:site id Specifies the id of the site. Default is 1 (Default Site).
/P:port Specifies the SSL port. Default is 443.
/Q Quiet mode. You will not be prompted when SSL settings are
overwritten.

The default behaviour is equivalent with:

selfssl.exe /N:CN=NAWWSFC1 /K:1024 /V:7 /S:1 /P:443

C:\Programme\IIS Resources\SelfSSL>

Für unser Zertifikat sollten wir also zumindest folgende Werte anpassen:

  • /N:cn=www.firma.tld
    Der Name ist der gleiche String, der auch in der URL im Browser auftaucht. Wenn der Namen des Zertifikats nicht mit dem Hostteil der URL übereinstimmt, werden die Anwender gewarnt.
  • /V:365
    Dieser Parameter bestimmt die Gültigkeit. 7 Tage sind natürlich zu kurz, wenn Sie das Zertifikat längere Zeit nutzen wollen. Wenn Sie SSL aber nur zum Test brauchen, um es dann durch ein offizielles Zertifikat zu ersetzen, ist eine kürzere Zeit sinnvoll. Es ist aber kein Problem, hier eine ausreichend lange Zeitdauer zu definieren. Sie müssen nur bedenken, dass sie dieses Zertifikat mangels zentraler CA nicht zurückziehen können. Wenn ihnen also jemand auf dem Server das Zertifikat entwendet, dann kann er sich sehr lange als ihr Server ausgeben.
  • /S:xxx
    Wenn Sie auf einem Windows Server mehrere "Sites" verwalten, müssen sie hier die Nummer der Site angeben, da ansonsten des Zertifikat der Default Site ausgetauscht wird.

Auch wenn "Ersetzen" immer so destruktiv wirkt, so erstellt SelfSSL einfach ein neues Zertifikat und weist dies der Webseite zu. Das bisherige Zertifikat wird natürlich nicht gelöscht. Sie könne im IISAdmin also jederzeit wieder das frühere Zertifikat auswählen.

Da es aber nun wirklich so einfach ist, ein SSL-Zertifikat zu erzeugen, gibt es keinen Grund mehr, auf einem Webserver ohne Zertifikat zu arbeiten.

Weitere Links