Zertifikate im systemweiten Truststore verwalten

Dominic Gabriel

Das Verwalten von Certificate Authority (CA) Zertifikaten für jede Applikation, wie curl, wget, java, etc. ist aufwändig und mühsam. Zum Glück gibt es eine einfache Lösung wie man Zertifikate für das ganze System im systemweiten Truststore verwalten kann. Wenn du erfahren willst, wie man das macht und auf was man sich achten muss, dann ist dieser Blog-Eintrag genau das Richtige für dich.

Zertifikate zum Truststore hinzufügen

Standardmässig sind auf dem System bereits eine ganze Menge von Zertifikaten vorinstalliert. Diese kommen mit dem Packet ca-certificatesmit. Grundsätzlich gibt es zwei verschiedene Pfade, wo die eigenen Zertifikate im PEM-Format abgelegt werden können. Somit werden sie beim Generieren des Truststores berücksichtigt.

  • /usr/share/pki/ca-trust-source/anchors/: Zertifikate im PEM-Format mit einer niedrigen Priorität
  • /usr/share/pki/ca-trust-source/: Zertifkate im erweiterten „BEGIN TRUSTED“ File Format mit einer niedrigen Priorität
  • /etc/pki/ca-trust/source/anchors/: Zertifikate im PEM-Format mit einer hohen Priorität
  • /etc/pki/ca-trust/source/: Zertifikate im erweiterten „BEGIN TRUSTED“ File Format mit einer niedrigen Priorität

Die eigenen Zertifikate sollte man also besser im /etc/pki/ca-trust/source/ ablegen, damit sie die höchste Priorität besitzen und bevorzugt werden.

Es können zusätzlich auch Zertifikate hinzugefügt werden, welchen man explizit nicht vertrauen möchte. Diese können in die folgenden beiden Pfade gelegt werden.

  • /usr/share/pki/ca-trust-source/blacklist/
  • /etc/pki/ca-trust/source/blacklist/

 Löschen der vorinstallierten Zertifikate

Es kann sein, dass man den vorinstallierten Zertifikaten nicht vertraut und deshalb nur seine eigenen Zertifikate im Truststore haben möchte.
Dies ist möglich, indem man die vorinstallierten Zertifkate löscht. Dies ist jedoch keine empfohlene Konfiguration. Denn, falls ein System direkt nach aussen ins Internet kommuniziert, kann es dazu führen, dass Verbindungen nicht mehr aufgebaut werden können! So würde z.B. yum updatenicht mehr funktionieren.

bash<br>rm -f /usr/share/pki/ca-trust-legacy/ca-bundle.legacy.default.crt

Beachte: Bei einem Update oder Reinstallation des ca-certificatesPaket die Standard Zertifikate wieder installiert werden!

Anzeigen lassen des Truststores

Auf einem RHEL7 System kann der Truststore mit dem Kommando trust list angezeigt werden und generiert einen Output wie diesen:

Auf einem RHEL6 System gibt es dieses Kommando jedoch nicht. Somit ist es etwas umständlicher die Zertifikate im Truststore anzeigen zu lassen. Man kann dies mit dem folgenden Workaround machen:

Für jeden generierten Truststore im Pfad /etc/pki/ca-trust/extracted/ das folgende Kommando ausführen, wobei die Input-Datei angepasst werden muss.

Truststore auf RHEL6 aktivieren

Möchte man den Truststore auf einem RHEL6 System verwalten, muss dieser zuerst aktiviert werden, indem man das Kommando ca-trust enable absetzt. Dies sollte am besten gerade als erstes gemacht werden bevor man irgendwelche Zertifikate hinzufügt oder entfernt.

Testen

1. Wget einer internen Seite

2. Eigenes Zertifikat hinzufügen: cp my-ca-cert.crt /etc/pki/ca-trust/source/anchors/
3. Truststore neu generieren: update-ca-trust extract
4. Wget die gleiche interne Seite

Alles in Kürze

1. (Auf Rhel6) Truststore aktivieren: update-ca-trust enable
2. Eigenes Zertifikat hinzufügen: cp my-ca-cert.crt /etc/pki/ca-trust/source/anchors/
3. (Optional) Standard Zertifikate löschen: rm -f /usr/share/pki/ca-trust-legacy/ca-bundle.legacy.default.crt
4. Truststore neu generieren: update-ca-trust extract

Weiterführende Links:

  • https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-shared-system-certificates
  • man pages von update-ca-trust

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.