Sicherheitszertifikat mit Apache und mod_ssl erstellen

Auf der lokalen XAMPP Entwicklungsumgebung ein Sicherheitszertifikat erstellen und für den Aufruf einer verschlüsselten https Adresse nutzen.

TYPO3 Referenz-Projekt aus dem Bereich

Eine kleine Beschreibung zur Erstellung eines lokalen Sicherheitszertifikates das für verschlüsselte Datenbewegungen (Stichwort: https) im Webbrowser benötigt wird.

Als erstes die Testumgebung

Folgende Serverkomponenten sollten installiert sein und bereits ihre gewünschte Funktion ausführen.

  • Apache Webserver (mit OpenSSL Modul)
  • mod_ssl 0.9.8r (aktuelleste Apache Version mit OpenSSL hier erhältlich)
  • PHP 5.2.6 (aktuelle PHP Versionen sind hier zu bekommen)
  • optional ein Datenbankserver, wie MySQL (hier erhältlich)

Der zweiten Schritt

Es wird in der httpd.conf des Apache Server das OpenSSL Modul "mod_ssl" aktiviert. Einfach folgende Zeile auskommentieren und den Server neu starten.

LoadModule ssl_module modules/mod_ssl.so

Drittens das Zertifikat erstellen

In der Windows Kommandozeile (cmd) das Verzeichnis mit der Apache Installation ansteuern und in den Unterordner "bin" wechseln.

  • cd D:\Webserver\Apache2.2\bin

Dort wird die "openssl.exe" aktiviert und man kann beginnen ein neues Zertifikat anzulegen.

req -config ../conf/openssl.cnf -new -out ../conf/neues_zertifikat.csr

Nach Eingabe dieses Befehls muss ein Passwort (mindestens 4 Zeichen) zur Generierung des Sicherheitszertifikates festgelegt werden (dieses bitte aufschreiben oder merken).

Im Folgenden werden dann die benötigte Daten zum Zertifkat abgefragt.

  • Country Name (2 letter code) [AU]:
  • State or Province Name (full name) [Some-State]:
  • Locality Name (eg, city) []:
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]:
  • Organizational Unit Name (eg, section) []:
  • Common Name (eg, YOUR name) []: 127.0.0.1
  • Email Address []:Please enter the following 'extra' attributesto be sent with your certificate request
    A challenge password []:
    An optional company name []:

Im Prinzip kann hier alles frei gelassen werden bis auf "Common Name". Dort muss die Internet-Adresse der Seite rein, auf dem das Zertifikat verwendet wird. In meinem Beispiel kommt dort die Adresse des lokalen Pache Servers rein. Also: 127.0.0.1

Nachdem alle Daten drin sind, kommt diese Befehlszeile zur Anwendung.

x509 -in ../conf/neues_zertifikat.csr -out ../conf/neues_zertifikat.crt -req -signkey ../conf/neues_zertifikat.key -days 1800

Diese dient zur entgültigen Speicherung des neuen Zertifikates in Form einer Datei "neues_zertifikat.key" die sich nun im Ordner "Apache2.2\conf" befindet.

Sollte alles geklappt haben, kann nun mit folgender Adresse im Browser probiert werden, ob das Zertifikat wie gewünscht seinen Dienst tut.

  • https://127.0.0.1

Das war es schon. Es sollte jetzt eine "sichere" Verbindung zur angeforderten Seite angelegt werden.
Viel Spaß damit.