Apache 2.2 mit SSL-Unterstützung installieren (Windows)

Tags:

Neulich habe ich Apache 2.2 mit OpenSSL-Unterstützung auf einem Windows 7-Rechner installiert. Das Ganze hat etwas länger gedauert als erwartet, da es ein paar Stolpersteine aus dem Weg zu kicken galt. Damit es das nächste Mal schneller geht, schreib ich hier mal für mich und natürlich auch euch nieder, wie es am schnellsten geht.

Installation von Apache mit SSL-Unterstützung

Damit ihr HTTP mit SSL (HTTPS) nutzen könnt, braucht ihr einen Apachen mit OpenSSL-Federschmuck. Das passende Packet findet ihr auf http://apache.mirror.testserver.li/httpd/binaries/win32/ (oder nem anderen Mirror). Ihr müsst eine Datei im Stile von httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi runterladen.

Falls ihr bereits eine Apache-Installation am Laufen habt, empfiehlt es sich, diese jetzt zu deinstallieren.

Danach installiert ihr den frisch runtergeladenen Apache. Das kriegt ihr alleine hin - ich glaube an euch!

Zertifikat für localhost generieren

Jetzt öffnet wir erst mal eine Konsole. Falls ihr Windows 7-Nutzer seid, ist es wichtig, dass ihr die Konsole mit Admin-Rechnen öffnet.

Danach wechselt ihr ins Installationsverzeichnis von Apache. Zum Beispiel:

cd "c:\Program Files (x86)\Apache Software Foundation\Apache2.2"

Dann erstellen wir erst mal ein Verzeichnis wo wir unsere Zertifikate aufbewahren wollen:

mkdir conf\ssl

So. Nun ist alles bereit. Zuerst müssen wir eine Zertifikatsignierungsanfrage plus privaten Schlüssel generieren.

.\bin\openssl req -config conf\openssl.cnf -new -out conf\ssl\localhost.csr -keyout conf\ssl\localhost.pem

Generierung von Zertifikatsignierungsanfrage und privatem Schlüssel

Ihr werdet zu folgenden Eingaben aufgefordert:

Als nächstes entfernen wir die Passphrase/das Passwort aus dem privaten Schlüssel und speichern ihn in einer eigenen Datei. Das geht so:

.\bin\openssl rsa -in conf\ssl\localhost.pem -out conf\ssl\localhost.key

Entfernung der Passphrase aus dem privaten Schlüssel

Zu guter Letzt generieren wir uns noch unseres eigenens Zertifikat. Normalerweise würde dies eine autorisierte Stelle übernehmen, doch für den Selbstgebraucht ist das nicht notwendig.

.\bin\openssl x509 -in conf\ssl\localhost.csr -out conf\ssl\localhost.crt -req -signkey conf\ssl\localhost.key -days 1825

Generierung des Zertifikates

Durch die Angabe von -days 1825 wird dieses Zertifikat für 5 Jahre gültig sein. Das sollte reichen.

Zusammengefasst haben wir nun folgende Dateien erstellt:

Konfiguration von Apache mit SSL-Unterstützung

Was wir jetzt noch tun müssen ist unserem Apachen den Federschmuck aufsetzen. Dazu öffnen wir erst mal die httpd.conf im Konfigurationsverzeichnis von Apache. Dort gilt es folgende Schritte durchzuführen:

Nun öffnen wir eben diese httpd-ssl.conf und machen folgendes:

Jetzt nur das Speichern nicht vergessen, den Apachen vom Pferden holen und wieder drauf setzen (= geniale Metapher für Neustarten) und schon sollte https://localhost funktionieren. :]

Wichtig für Windows 7-Benutzer

Falls ihr Apache im Standardverzeichnis installiert habt, beinhaltet euer Pfad bei C:/Program Files (x86)/Apac... runde Klammern. Dies führt zur Fehlermeldung SSLSessionCache: Invalid argument: size has to be >= 8192 bytes beim Versuch den Apache zu starten.

Abhilfe schafft eine Verknüpfung auf das Apache-Verzeichnis z.B. im Root von C:\. Da es mir wegen den Rechten nicht gelang eine Verknüpfung direkt in C:\ zu erstellen, habe ich diese zuerst auf dem Desktop erstellt und danach nach C:\ kopiert.

Schlussendlich solltet ihr einfach eine Verknüpfung à la C:\Apache2.2 nach C:\Program Files (x86)\Apache Software Foundation\Apache2.2 haben.

Danach sucht ihr im httpd-ssl.conf die Zeile beginnend mit SSLSessionCache und ersetzt den bestehenden Pfad mit dem neuen, klammerlosen Pfad der Verknüpfung. Zum Beispiel SSLSessionCache "shmcb:C:/Apache2.2/logs/ssl_scache(512000)".

Jetzt sollte der Apache mit HTTPS auch unter Windows 7 rocken!

Ähnliche Artikel

Kommentare