SSL-Server konfigurieren
Linux (am Beispiel Apache-Server)
Wenn Sie ein Server-Zertifkat beantragt und 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
root
die 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. Entnehmen Sie die Zertifikatskette der E-Mail mit Ihrem Zertifikat unter "as Root/Intermediate(s) only, PEM encoded" und das eigentliche Zertifikat unter "as Certificate only, PEM encoded".
-
Für den Apache Webserver müssen in der
httpd.conf
die Direktiven
SSLEngine on
SSLCertificateFile /etc/ssl/tuhh/cert.pem
SSLCertificateKeyFile /etc/ssl/tuhh/private_key.pem
SSLCertificateChainFile /etc/ssl/tuhh/cert-chain.pem
gesetzt werden.
Unter Debian Derivaten (Debian, Ubuntu, ...) bietet sich ein Unterordner in /etc/ssl/ an.
Unter Redhat Derivaten (Redhat, Alma, ...) bietet sich ein Unterordner in /etc/pki/tls/ an.
sudo mkdir -p /etc/ssl/tuhh/ sudo chmod 700 /etc/ssl/tuhh/ sudo chown root:root /etc/ssl/tuhh/
Achten Sie darauf, dass nur root die Dateiprivate_key.pem
lesen 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 ein Server-Zertifkat beantragt und 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.- Entnehmen Sie die Zertifikatskette der E-Mail mit Ihrem Zertifikat unter "as Root/Intermediate(s) only, PEM encoded" und das eigentliche Zertifikat unter "as Certificate only, PEM encoded".
- Aus der Zertifikatskette chain.txt, dem
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 ein Server-Zertifkat beantragt und 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 wird
unter Vertraute Herausgeber importiert:
Screenshots:
- Das Wurzelzertifikat wird
unter Vertraute Herausgeber importiert:
- Das Zertifikat 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: