SSL Zertifikat unter Zend erstellen

Im folgenden erstellen wir einen kompletten Schlüsselsatz manuell. Dazu wird das Programm openssl benötigt, das bei einer Standard-Installation des Zend Server CE mitgeliefert wird. Veränderungen in der Installation werden alle hier beschrieben. Ich habe das ganze unter einem Windows Zend Server CE durchgeführt.

Anpassen der Server Konfiguration

Zuerst entfernen wir in der Datei C:\Program Files (x86)\Zend\Apache2\conf\httpd.conf das Kommentarzeichen #:

Include conf/extra/httpd-ssl.conf

Erzeugen eines Server-Zertifikat

Die einzelnen notwendigen Schritte sind:

openssl req -config "C:\Program Files (x86)\Zend\Apache2\conf\openssl.cnf" -new > server.csr

Dadurch erhalten wir ein Schlüsselpaar, in unserem Beispiel die beiden Dateien server.csr und privkey.pem.

Erzeugen eines Server-Zertifikat – Konsolenausgabe

Bitte bei Common Name immer die korrekte Domain angeben, ggf. mit Wildcards.

Falls man den Parameter config nicht angibt, erhält man z. B. folgende Fehlermeldung:

Unable to load config info from ........
  apache2bin/........apache2bin/openssl.cnf

Die server.csr enthält das Request-Zertifikat, die privkey.pem den Private-Key. Während des Anlegens musste ein Passwort für den Schlüssel angegeben werden. Dieses Passwort kann wieder entfernt werden, da in der Regel keine Passwort-Abfrage beim Aufbau einer https-Verbindung gewünscht ist.

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

Der Schlüssel server.key wird erzeugt.

Abschließend müssen wir noch das Request-Zertifikat in ein signiertes Zertifikat umwandeln:

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

Dadurch haben wir jetzt die Datei server.crt angelegt, die ein signiertes Zertifikat enthält.

Apache Neustart

Zum Abschluß muß lediglich der Apache neugestartet werden. Wenn man alles richtig gemacht hat, kann man die eingerichtete Domain über https://… abrufen. Hier am Beispiel von localhost:

Aufruf über https

Mögliche Probleme

Ich erhielt im ersten Versuch folgende Fehlermeldung:

SSLSessionCache: Invalid argument: size has to be >= 8192 bytes

Die Lösung war recht einfach, wenn man es erstmal gefunden hat:

Die Zeile in der Datei C:\Program Files (x86)\Zend\Apache2\conf\extra\httpd-ssl.conf

SSLSessionCache        "shmcb:D:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"

umändern in eine Variante ohne Leerzeichen im Pfad z. B.

SSLSessionCache        "shmcb:D:\temp\ssl_scache(512000)"

Kommentar verfassen