Ich habe unlängst SSL für meinen Entwicklungs-Webserver installiert, auf dem momentan ein Apache 2.2.6 läuft. Die folgende Anleitung habe ich hauptsächlich deshalb geschrieben, um künftig selbst nachlesen zu können. Wenn sie möglicherweise auch noch anderen hilft, um so besser!

Ausgangslage

Ich habe die SSL-Integration für Apache 2.2.6 mit OpenSSL 0.9.8e durchgeführt, mein Betriebssystem ist Windows XP Professional SP2. Die SSL-Integration sollte auch mit vergleichbaren anderen Apachen und Windows-Systemen ähnlich funktionieren. Beim Download des Apachen darauf achten, dass keine no-ssl-Version geholt wird. Die Installationsdatei hat in meinem Fall den Namen apache_2.2.6-win32-x86-openssl-0.9.8e.msi.
Um dieses Howto zu nutzen, sollte zumindest etwas Erfahrung in der Konfiguration des Apache vorhanden sein.

Alle Angaben ohne Gewähr, Benutzung auf eigene Gefahr.

SSL-Zertifikat mit OpenSSL erstellen

Man benötigt ein SSL-Zertifikat, damit der Webserver https-Anfragen überhaupt beantworten kann. SSL-Zertifikate kann man bei einer Certification Authority - kurz "CA" - erwerben. Für Testzwecke kann man jedoch auch sein eigenes Zertifikat erstellen und das wollen wir tun.

Wir öffnen zuerst eine Eingabeaufforderung ("Shell") und wechseln in den bin-Ordner des Apache2.2-Verzeichnisses. Wir geben den Befehl "openssl" ein:

C:\Programme\...\Apache2.2\bin> openssl
OpenSSL>

Daraufhin erscheint das OpenSSL-Prompt, wir sind in der SSL-Shell. Wir wollen nun ein Zertifikat für den Server "localhost" erstellen.

Zum Erstellen des Testzertifikats sind lediglich vier Befehlszeilen in die SSL-Shell einzugeben:

OpenSSL> req -config ../conf/openssl.cnf -new -out
localhost.csr
OpenSSL> rsa -in privkey.pem -out localhost.key
OpenSSL> x509 -in localhost.csr -out localhost.crt -req -signkey localhost.key -days 1800
OpenSSL> x509 -in localhost.crt -out localhost.der.crt -outform DER

Manche der Befehle erfordern weitere Eingaben. Da unser Zertifkat nur für Testzwecke erstellt wird, ist nicht weiter wichtig, was eingegeben wird.

Das Zertifikat ist nun fertig. Wir kopieren folgende Dateien in den Unterordner conf des Apache2.2-Verzeichnisses:

httpd.conf

Wir öffnen die Datei conf/httpd.conf und aktivieren folgende Einträge:

Datei httpd.conf speichern.

httpd-ssl.conf

Wir öffnen die Datei conf/extra/httpd-ssl.conf und ändern folgende Direktiven - Die Pfade sind natürlich der lokalen Installation anzupassen:

Im <VirtualHost>-Teil der Datei sind nun noch die gewünschten Anpassungen vorzunehmen, zum Beispiel DocumentRoot. Schließlich ist der SSL-Server ein eigener virtueller Host und kann separat konfiguriert werden.

Datei httpd-ssl.conf speichern.

libeay32.dll und ssleay32.dll

Zuletzt sind noch zwei dll-Dateien vom Ordner Apache2.2\bin in das Verzeichnis %WinDir%\system32 zu kopieren:

Zuvor sollten die beiden vorhandenen dlls im system32-Ordner gesichert werden.

Server neu starten, fertig.

%WinDir% ist das Windows-Verzeichnis - meist C:\WINDOWS oder C:\WINNT

Martin Dunst, 2.11.2007
Zuletzt geändert am 22.5.2015