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.pem

    Damit 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. Man kann diese aus dem "DFN-Verein PCA Classic - G01 (Wurzelzertifikat)" und dem "Zertifikat der TUHH CA" zu finden hier unter "CA-Zertifikate", bzw. dem "DFN-PCA-Zertifikat" und dem "DFN-CA Global G2 Zertifikat" zu finden hier unter "CA-Zertifikate" selbst zusammenbauen oder nimmt

    Global1 steht dabei für die Zertifikatskette unter dem Deutschen Telekom Root CA 2 Wurzelzertifikat und global2 für die Zertifikatskette unter dem T-Telesec Global Root Class 2 Wurzelzertifikat.
  • Für den Apache Webserver müssen in der httpd.conf die Direktiven

    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl.crt/cert.pem
    SSLCertificateKeyFile /etc/httpd/ssl.key/private_key.pem
    SSLCertificateChainFile /etc/httpd/ssl.crt/cert-chain-global2.pem

    gesetzt werden.

    Achten Sie darauf, dass nur root die Datei private_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.
    Nehmen Sie bitte die entsprechende Zertifikatskette zu Ihrem signierten Zertifikat, zu finden hinter der entsprechenden Einstiegsseite beim Online-Antrag unter "CA-Zertifikate".

    Zertifikate unter dem Deutschen Telekom Root Wurzelzertifikat (läuft aus)

    Zertifikate unter dem T-Telesec Global Root Class 2 Wurzelzertifikat

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 ( Einstiegsseite für Zertifikate unter dem Deutschen Telekom Root Wurzelzertifikat / Einstiegsseite für Zertifikate unter dem T-Telesec Global Root Class 2 Wurzelzertifikat). 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: Managementkonsole öffnen Managementkonsole Snap-In hinzufügen Managementkonsole Snap-In Zertifikate Managementkonsole Zertifikate für Computerkonto
  • Danach müssen Sie die CA-Zertifikate importieren (rechter Mausklick!)

    • Das Wurzelzertifikat DFN-Verein PCA Classic - G01 wird unter Vertraute Herausgeber importiert:

      Screenshots: DFN-Verein PCA Classic importieren

    • Das Zertifikat der TUHH CA wird importiert unter Vertrauenswürdige Stammzertifizierungsstellen, damit der Webserver, die gesamte Zertifikatskette liefern kann.

      Screenshots: Zertifikat TUHH CA importieren

  • Bei Ausstellung eines Zertifikat erhalten Sie ein Mail mit dem neuen Zertifikat im PEM-Format. Kopieren Sie aus der Mail alle Zeilen zwischen den Trennzeilen -----BEGIN CERTIFICATE----- und -----END CERTIFICATE----- inklusive dieser Trennzeilen in die Datei cert.pem. Nun muss aus dem privaten Schlüssel private_key_enc.pem und dem neuen Zertifikat cert.pem des Webservers eine sogenannte PKCS12-Datei gebaut werden, damit Windows nicht nur das Zertifikat sondern auch den geheimen, privaten Schlüssel importieren kann (für die Übersichtlichkeit sind hier Zeilenumbrüche eingefügt):

    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.

  • Diese neu erzeugte Datei winsslcer.p12 importieren Sie unter Eigene Zertifikate für den lokalen Computer. Das Passwort, dass Sie eingeben müssen, ist das zuvor vereinbarte Export/Import-Passwort (in diesem Beispiel geheim2):

    Screenshots: Eigenes Zertifikat importieren Eigenes Zertifikat importieren IIS Zertifikatskette

  • Im letzten Schritt muss noch der IIS so konfiguriert werden, dass dieser das neue Zertifikat verwendet:

    Screenshots: IIS Konfiguration starten IIS Eigenschaften IIS Serverzertifikat IIS Zertifikat Assistent IIS Verfügbare Zertifikate IIS Sichere Kommunikation IIS Neustart