• Zielgruppen
  • Suche
 

Installation des Server-Zertifikats unter Linux

Damit Ihr Server das Zertifikat und die dazugehörigen Schlüssel benutzen kann, ist neben der Installation der Dateien auf dem Server noch die Einbindung in den Dienst notwendig.

Installation der Dateien auf dem Server:

  • Da es sich bei dem Zertifikat um ein Server-Zertifikat handelt, das von mehreren Diensten genutzt werden kann, sollte es in einem zentralen Verzeichnis (bei Linux typischerweise unterhalb /etc/ssl/) hinterlegt werden:

    • Das Zertifikat In /etc/ssl/certs/ mit dem Besitzer root und für alle lesbar aber nicht schreibbar.
    • Der private Schlüssel zu dem Zertifikat in /etc/ssl/private/ mit dem Besitzer root und nicht lesbar für andere. Ggf. notwendige Leseberechtigungen für andere (Daemon-/System-) Nutzer sollten über die Gruppe gesteuert werden.

  • Neben dem Server-Zertifikat mit Schlüssel selbst müssen i.Allg. auch die Zertifikate der ausstellenden CA-Kette nach /etc/ssl/certs/ installiert werden. Dieses sind:

  • Sie sollten jeweils den Fingerprint der CA-Zertifikate überprüfen.

    • Die Fingerprints dienen zum Abgleich des geladenen Zertifikates mit den Angaben des Ausstellers. Je nachdem, wem Sie bei der Überprüfung dieser Fingerprints vertrauen wollen, verlassen Sie sich auf die Angaben der oben genannten Links, schauen auf der Homepage des Ausstellers nach oder, wenn Sie den ganzen Internet-Verkehr für unsicher halten, Sie rufen beim Aussteller an und lassen sich den Fingerprint durchgeben.
    • Zur Anzeige des Fingerprints können Sie OpenSSL wie folgt aufrufen:
      openssl x509 -in <CA-Zertifikat.pem> -fingerprint -sha1 -noout

  • Um die vorhandene Kette von CA-Zertifikaten für den Server bereitzustellen, kann man entweder jedes einzelne Zertifikat in der Konfigurationsdatei angeben oder man erzeugt sich eine Datei, die alle notwendigen CA-Zertifikate im PEM-Format enthält (z.B. mit cat in eine Textdatei hintereinander hängen).
    Für die UH-CA können Sie auch direkt das vorbereitete CA-Bundle verwenden.

Einbindung im Dienst

  • Der Dienst ist so zu konfigurieren, dass er die eingespielten Zertifikate und den privaten Schlüssel nutzt. Das hängt sehr vom Dienst ab (als Beispiel vgl. Apache-Webserver unten). Dabei sollten Sie beachten

    • Der Nutzer, und dem der Dienst gestartet wird, muss den privaten Schlüssel lesen können. Ggf. ist die notwendige Passphrase in der Konfiguration zu hinterlegen.
    • Nach Möglichkeit sollte an den anfragenden Client nicht nur das eigentliche Serverzertifikat sondern die ganze Zertifikatskette (CAs und Server-Zertifikat) übermittelt werden, damit der Client keine Probleme mit fehlenden Zwischen-CAs hat.

  • Der Dienst ist meist neu zu starten, damit die geänderte Konfiguration wirksam wird.
  • Testen Sie den Zugriff auf den Server und das ausgelieferte Zertifikat.

Installation eines Zertifikats für einen Apache-Webserver unter Debian

...

Die Kette der CA-Zertifikate im PEM-Format kann direkt heruntergeladen werden:
wget https://appconf.rrzn.uni-hannover.de/conf/pki/pem/dfnglobal-uh-chain.pem \
   -O /etc/ssl/certs/dfnglobal-uh-chain.pem

Hierbei zunächst ca-certificates installieren, etwas paranoider zusätzlich die Option
--ca-certificate=/etc/ssl/certs/Deutsche_Telekom_Root_CA_2.pem
verwenden. Ohne das Paket ca-certificates ggf. die Kommandozeilenoption --no-check-certificate verwenden, dann aber den Fingerprint des Root-Zertifikats prüfen.

Danach sollten in der Site-Config für den Apache-SSL-Server in /etc/apache2/sites-available/default-ssl noch folgende Einträge vorgenommen werden:
  SSLCertificateChainFile /etc/ssl/certs/dfnglobal-uh-chain.pem
  SSLCertificateFile /etc/ssl/certs/SERVER-cert.pem
  SSLCertificateKeyFile /etc/ssl/private/SERVER-key.pem
...