Logo faq-o-matic.net
Logo faq-o-matic.net

SSL-Zertifikate für den IIS mit OpenSSL

von veröffentlicht am14. November 2008, 09:39 Uhr Kurzlink http://faq-o-matic.net/?p=989 Zitatlink
Kategorie Kategorie: Sicherheit, Webserver   Translate with Microsoft Translator Translate EN   Die angezeigte Seite drucken

OpenSSL [1] verweisen in ihrer FAQ [2] für die Win32 Binaries auf folgende Seite: http://www.slproweb.com/products/Win32OpenSSL.html

Oft braucht man als Administrator nur ein SSL-Zertifikat für die eigene Webseite, um diese über HTTPS bereitstellen zu können. Ein gekauftes Zertifikat ist oft für den hausinternen Gebrauch zuviel des Guten. Andererseits sind Zertifikatsdienste von Microsoft manchmal an dieser Stelle ein wenig oversized.

Microsoft selbst bietet für den kleinen Hausgebrauch die selfssl.exe aus dem IIS 6.0 Resource Kit [3]. Um ein zwei Jahre (/V:730) gültiges Zertifikat für meinen Computer (/N:CN=hostname.meinedom.intern) zu erstellen, das mit einen 1024 Bit Schlüssel (/K:1024) arbeitet und sich direkt auf meiner Default-Website, Standardwebseite (S:1) für den Standardport HTTPS etabliert (/P:443), kann folgender Befehl verwendet werden:

selfssl.exe /N:CN=hostname.meinedom.intern /K:1024 /V:730 /S:1 /P:443

Die Nachteile:

  • Ich kann das Zertifikat nur direkt in den IIS hinzufügen, er muss auf dem System laufen, auf dem die EXE gestartet wird.
  • Es können keine weiteren Informationen wie Firmenname/Aussteller, Zweck, Land, Organisation etc. hinterlegt werden.
  • Ich muss pro SSL verschlüsselter Seite ein Zertifikat erstellen und dieses bei meinen Clients einzeln importieren, damit es als vertrauenswürdig angenommen wird.
  • Es gibt kein "Root-Zertifikat", von dem "alle" weiteren abstammen.

Sicherlich kann man diese Nachteile für den internen Gebrauch in Kauf nehmen. Muss man aber nicht.

Wem die MS-eigene Zertifizierungsstelle nun nicht gefällt, der kann auf OpenSSL zurückgreifen. Es wird damit sicherlich nicht weniger komplex, was die Zertifikatsthematik generell betrifft, aber die Absicherung der Zertifikate mit OpenSSL ist doch etwas einfacher, da sie im Dateisystem stattfindet.
Achtung: Das birgt aber auch die Gefahr des Missbrauchs, da es so einfach ist.

Step-By-Step

Herunterladen des Win32-Binary und in einem beliebigen Ordner entpacken, z.b.: C:\Programme\OpenSSL.

CMD öffnen und in das Verzeichnis C:\Programme\OpenSSL\bin wechseln

Step 1: Erstellen der CA (Certifikate Authority/Zertifizierungsstelle)

Erstellung des Private Key (Privater Schlüssel)

openssl genrsa -des3 -out firma-private.key 1024
Loading 'screen' into random state – done
Generating RSA private key, 1024 bit long modulus
………………++++++
..++++++
e is 65537 (0×10001)
Enter pass phrase for firma-private.key:
Verifying – Enter pass phrase for firma-private.key:

Step 2: Erstellen des Root-Zertifikats.

openssl req -config .\openssl.cnf -new -key firma-private.key -x509 -days 1825 -out firma-ca.crt
Enter pass phrase for firma-private.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
—–
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Niedersachsen
Locality Name (eg, city) []:Hannover
Organization Name (eg, company) [Internet Widgits Pty Ltd]:faq-o-matic.net
Organizational Unit Name (eg, section) []:Step-by-Step Guides
Common Name (eg, YOUR name) []:ssl.faq-o-matic.net
Email Address []:xxxx@xxx-x-xxxxx.xxx

Step 3: Erstellen des CSR (Certificate Signing Request) erfolgt am System, wo der IIS läuft

  • Internetinformationsdienste-Manager starten
  • zur Seite navigieren, für die das Zertifikat sein wird
  • rechte Maustaste, Kontextmenü -> Eigenschaften
  • Reiter "Verzeichnissicherheit"
  • Schaltfläche "Server Zertifikate"
  • Dem Assitenten zur Erstellung einer Zertifikatsanfrage folgen
    • Neues Zertifikat erstellen
    • Anforderung jetzt vorbereiten, aber später senden
  • Den Request speichern -> C:\Programme\OpenSSL\bin\certreq.txt

Step 4:    Signieren der CSR in der Authentifizierungstelle

openssl x509 -req -days 730 -in certreq.txt -CA firma-ca.crt -CAkey firma-private.key -CAcreateserial -out extern-server.crt

Loading 'screen' into random state – done
Signature ok
subject=/C=DE/ST=Bavaria/L=Hannover/O=faq-o-matic/OU=Step-by-Step Guides/CN=ssl.faq-o-matic.net
Getting CA Private Key
Enter pass phrase for firma-private.key:

Step 5: Import des Zertifikats extern-server.crt im IIS

Am Ende wurden folgende Dateien erstellt:

firma-private.key Der private Schlüssel der CA, AUFHEBEN!
firma-ca.crt Das Root-Zertifikat der CA, AUFHEBEN
Schönheitspreis: Verteilen dieses Zertifikats an alle Clients per Gruppenrichtlinie: Computerkonfiguration\Lokale Richtlinie\Richtlinie für öffentliche Schlüssel\Vertrauenswürdige Stammzertifizierungsstellen
firma-ca.srl Die Seriennummer der CA, der Name wird automatisch gewählt, wenn im Schritt 2 "-out firma-ca.crt"angegeben wird, erhält die .srl ebenfalls "firma-ca"
certreq.txt Der Request, kann gelöscht werden
extern-server.crt Das Zertifikat für den Webserver, wird im IIS importiert

 

[1] http://www.openssl.org/
[2] http://www.openssl.org/related/binaries.html
[3] http://www.microsoft.com/downloads/details.aspx?familyid=56FC92EE-A71A-4C73-B628-ADE629C89499&displaylang=en

© 2005-2014 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!