SSL-Server konfigurieren
Linux (am Beispiel Apache-Server)
Wenn Sie wie auf den Seiten Zertifikate beantragen ein Server-Zertifkat erhalten haben, müssen Sie noch ihren Apache-Webserver passend konfigurieren.- Der erzeugte private (geheime) Schlüssel ist noch durch ein Passwort geschützt. In der
Regel ist das aber nicht gewünscht, weil sonst der Webserver diesen beim Starten
nicht ohne Eingabe des Passworts lesen kann. Das bedeutet beim Starten
des Webservers ist immer ein manueller Eingriff erforderlich. Um den
privaten Schlüssel permanent zu entschlüsseln, geben Sie ein
openssl rsa -passin pass:geheim -in private_key_enc.pem -out private_key.pem
chmod 400 private_key.pemDamit wird der private Schlüssel für jeden, der die Datei private_key.pem lesen kann, sichtbar. Achten Sie deshalb auf die Dateirechte. Normalerweise sollte es reichen, wenn nur
rootdie Datei lesen kann. Der Apache liest die Datei bevor er sein Root-Rechte aufgibt. -
Damit die Webbrowser das neue Zertifikat auf die im Webbrowser
importierten Wurzelzertifikate zurückführen können, müssen
Sie den Webbrowsern die gesamte Zertifikatskette
zur Verfügung stellen. Die Zertifikatskette wird vom Apache im PEM-Format benötigt. Man kann
diese aus dem DFN-Verein PCA Classic - G01 (Wurzelzertifikat)
und dem Zertifikat der TUHH CA selbst zusammenbauen
oder nimmt
- die Datei
tuhh-cert-classic-chain.pemfür Server-Zertifikate unter der Classic-Policy - die Datei
tuhh-cert-global-chain.pemfür Server-Zertifikate unter der Global-Policy
- die Datei
-
Für den Apache Webserver müssen in der
httpd.confdie Direktiven
SSLEngine on
SSLCertificateFile /etc/httpd/ssl.crt/cert.pem
SSLCertificateKeyFile /etc/httpd/ssl.key/private_key.pem
SSLCertificateChainFile /etc/httpd/ssl.crt/tuhh-cert-xxx-chain.pem
gesetzt werden.
Achten Sie darauf, dass nur root die Dateiprivate_key.pemlesen kann. Insbesondere darf der laufende Apache (wenn er in einem anderen Account läuft) die Datei nicht lesen können. Sonst besteht die Gefahr, dass z.B. der private Schlüssel über unsichere CGI-Scripte ausgelesen werden kann.
Linux (am Beispiel Tomcat-Server)
Wenn Sie wie auf den Seiten Zertifikate beantragen ein Server-Zertifkat erhalten haben, müssen Sie noch ihren Tomcat-Webserver passend konfigurieren. Damit die Webbrowser das neue Zertifikat auf die im Webbrowser importierten Wurzelzertifikate zurückführen können, müssen Sie den Webbrowsern die gesamte Zertifikatskette zur Verfügung stellen.- Neben dem erhaltenen cert-<nummer>.pem benötigen sie alle Zertifikate der Zertifikatskette. Diese erhalten Sie auf den Seiten des DFN. Unter dem Reiter CA-Zertifikate lässt sich mittels Rechtsklick auf und Speichern unter die Zertifikatkette chain.txt in einem Schritt speichern und muss nicht selbst zusammengefügt werden.
- Aus der Zertifikatskette chain.txt, dem von der TUHH CA
signierten Tomcat-Server-Zertifikat cert-<nummer>.pem
und dem private_key_enc.pem wird nun ein Keystore im
PKCS12 Format server-cert.pkcs12 erzeugt:
openssl pkcs12 -export -chain -CAfile chain.txt -in cert-<nummer>.pem -inkey private_key_enc.pem -out server-cert.pkcs12 -name tomcat-server -passout pass:changeit
- Dies ist nur eine einzige Kommando-Zeile, Umbrüche durch den Webserver müssen beseitig werden. Der Name tomcat-server sollte dabei der Fully Qualified Domain Name (FQDN) und das Passwort changeit zum Schutz des Keystore gesetzt werden.
- Diese server-cert.pkcs12 Ausgabedatei kann nun als .keystore im HOME-Verzeichnis des Tomcat benutzt werden. (Falls der Server als root läuft also als mv server-cert.pkcs12 /root/.keystore.)
- Der Server muss diese Änderungen noch in /conf/server.xml
im Installationsverzeichnis des Tomcat eingestellt bekommen. Dies erfordert das
Einkommentieren/Erstellen dieses Blockes:
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<Connector port="443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true
acceptCount="100" scheme="https" secure="true" keystoreType="PKCS12"
clientAuth="false" sslProtocol="TLS" keystoreFile="/root/.keystore"
keystorePass="changeit" />Wichtig ist dabei die Anpassung des Connector port="443" sowie die explizite Nennung des Formates keystoreType="PKCS12". Das Passwort wird benötigt, damit der Tomcat-Server das Zertifikat aus dem geschützen Keystore beim Starten laden kann.
- Der Tomcat muss neu gestartet werden, damit die Änderungen übernommen werden.
Windows-Server (am Beispiel IIS)
Wenn Sie wie auf den Seiten Zertifikate beantragen ein Server-Zertifkat erhalten haben, müssen Sie noch alle nötigen Zertifikate und Schlüssel in den Zertifikatsspeicher des Computerkonto importieren und danach den IIS-Webserver entsprechend konfigurieren.- Um den Zertifikatsspeicher des Computerkonto zu bearbeiten, öffnen Sie eine
Management-Konsole und fügen Sie das Snap-In Zertifikate für das Computerkonto
hinzu:
Screenshots:

- Danach müssen Sie die CA-Zertifikate importieren (rechter Mausklick!)
- Das Wurzelzertifikat DFN-Verein PCA Classic - G01 wird
unter Vertraute Herausgeber importiert:
Screenshots:

- Das Wurzelzertifikat DFN-Verein PCA Classic - G01 wird
unter Vertraute Herausgeber importiert:
- Das Zertifikat der TUHH CA wird importiert unter Vertrauenswürdige Stammzertifizierungsstellen,
damit der Webserver, die gesamte Zertifikatskette liefern kann.
Screenshots:

openssl pkcs12
-export
-passin pass:geheim
-passout pass:geheim2
-inkey private_key_enc.pem
-in cert.pem
-out winsslcer.p12
Darin ist geheim2 das Export/Import-Passwort, dass sie später beim Importieren eingeben müssen. geheim ist das Passwort, dass Sie beim Erzeugen des Zertifikatsantrages eingegeben haben. Die PKCS12-Datei winsslcer.p12 enthält nun den geheimen, privaten Schlüssel und das neue Zertifikat des Webservers in einem Format, das Windows verarbeiten kann.
Screenshots:

Screenshots:

