Die nachfolgende Anleitung basiert im wesentlichen auf der Anleitung von Port25 aus dem Hause Microsoft. Allerdings mit ein paar kleineren Aktualisierung und auf deutsch.

Es geht darum, wie man Apache mit SSL konfiguriert und ein selbstsigniertes Zertifikat erstellt.

Zum Einsatz kommt der Apache Webserver von Apache Lounge in der Version 2.2.21 + openssl-1.0.0e (Der erste Download-Link auf der Seite). Je nach Windows-Version sollte man die 32- oder 64-bit-Version herunterladen. Letztere gibt es nur mit openssl-1.0.0.e.

Diese Anleitung ist zwar für Windows geschrieben, die Befehle funktionieren prinzipiell auch unter Linux. Allerdings sind dann die Pfade anders und getestet habe ich es nicht.

Vorbereitung

  • Den Ordner “C:\OpenSSL-1.0.0.e\ssl” anlegen.

Hinweis: Nutzt man die 32-bit-Version mit openssl-0.9.8r muss auf jeden Fall der Pfad angepasst werden!

  • Die Datei “C:\Apache2\conf\openssl.cnf” nach “C:\OpenSSL-1.0.0e\ssl” kopieren.

Nachfolgende Befehle in einer Eingabeaufforderung im Ordner “C:\Apache2\bin\” ausführen.

set RANDFILE=C:\OpenSSL-1.0.0e\ssl\.rnd

Dieser Befehl ist notwendig, um die Fehlermeldung “unable to write ‘random state'” zu beseitigen.

Privaten Schlüssel erzeugen

openssl.exe genrsa -des3 -out server.key 1024

Zur Absicherung muss eine Passphrase festgelegt werden.

Gut merken, denn diese Passphrase wird später wieder benötigt.

Öffentlichen Schlüssel erzeugen

openssl.exe rsa -in server.key -out server.pem

Es muss die Passphrase für den privaten Schlüssel eingegeben werden.

Zertifikatsanforderung (CSR, Certificate Signing Request) erzeugen

openssl.exe req -new -key server.key -out server.csr

Wieder die Passphrase des privaten Schlüssels eingeben.

Ferner folgenden Angaben machen:

  • Country Name: LAND
  • State: BUNDESLAND
  • Locality Name: STADT
  • Organization Name: FIRMA
  • Organizational Unit Name: ABTEILUNG
  • Common Name: FQDN (die Adresse/URL, z.B. localhost)
  • Email Address: E-MAIL-ADRESSE (kann leer bleiben)
  • A challenge password: LEER
  • An optional company name: LEER

Selbstsigniertes Zertifikat erzeugen

openssl.exe x509 -req -days 30 -in server.csr -signkey server.key -out server.crt

Die Gültigkeit des Zertifikats wird über “-days 30”, in diesem Fall 30 Tage, festgelegt.

Es muss wieder die Passphrase des privaten Schlüssels eingeben werden.

Zertifikat installieren

  • Die Dateien “server.crt” und “server.pem” nach “C:\Apache2\conf” kopieren.
  • Die Datei “C:\Apache2\conf\httpd.conf” editieren und wie folgt abändern:
Loadmodule ssl_module modules/mod_ssl.so (Zeile 121, # entfernen)
Include conf/extra/httpd-ssl.conf (Zeile 483, # entfernen)
  • Die Datei “C:\Apache2\conf\extra\httpd-ssl.conf” editieren und wie folgt abändern:
SSLCertificateKeyFile "C:\Apache2\conf\server.pem" (Zeile 107)
  • Apache neu starten.

Nun sind die Inhalte des Apache Webserver via

https://URL

erreichbar.

Da es sich um ein selbstsigniertes Zertifikat handelt, erhält man vom Browser eine Warnung.