
Ich habe eine benutzerdefinierte Stammzertifizierungsstelle für ein internes Netzwerk, example.com, erstellt. Idealerweise möchte ich das mit dieser Zertifizierungsstelle verknüpfte CA-Zertifikat auf meinen Linux-Clients (mit Ubuntu 9.04 und CentOS 5.3) bereitstellen können, sodass alle Anwendungen die Zertifizierungsstelle automatisch erkennen (d. h. ich möchte Firefox, Thunderbird usw. nicht manuell konfigurieren müssen, um dieser Zertifizierungsstelle zu vertrauen).
Ich habe dies unter Ubuntu versucht, indem ich das PEM-codierte CA-Zertifikat nach /etc/ssl/certs/ und /usr/share/ca-certificates/ kopiert und /etc/ca-certificates.conf geändert und update-ca-certificates erneut ausgeführt habe. Die Anwendungen scheinen jedoch nicht zu erkennen, dass ich dem System eine weitere vertrauenswürdige CA hinzugefügt habe.
Ist es also möglich, einem System einmalig ein CA-Zertifikat hinzuzufügen, oder muss die CA manuell zu allen möglichen Anwendungen hinzugefügt werden, die versuchen, SSL-Verbindungen zu Hosts herzustellen, die von dieser CA in meinem Netzwerk signiert sind? Wenn es möglich ist, einem System einmalig ein CA-Zertifikat hinzuzufügen, wohin muss es dann?
Danke.
Antwort1
Kurz gesagt: Sie müssen jede Anwendung einzeln aktualisieren
Nicht einmal Firefox und Thunderbird teilen Zertifikate.
Leider gibt es unter Linux keinen zentralen Ort zum Speichern/Verwalten von SSL-Zertifikaten. Windows hat zwar einen solchen Ort, aber am Ende hat man das gleiche Problem (Firefox/Thunderbird verwenden die von Windows bereitgestellte API nicht, um die Gültigkeit eines SSL-Zertifikats zu bestimmen).
Ich würde auf jedem Host etwas wie Puppet/Cfengine verwenden und die benötigten Stammzertifikate mit den Mechanismen, die diese Tools bereitstellen, auf allen Clients platzieren.
Antwort2
Leider verwenden Programme wie Firefox und Thunderbird ihre eigene Datenbank.
Sie können jedoch ein Skript schreiben, um alle Profile zu finden und dann das Zertifikat hinzuzufügen. Hier ist das Tool zum Hinzufügen des Zertifikats: http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html
Sie können auch eine Standarddatei cert8.db einrichten, sodass auch neue Profile sie erhalten.
Bei anderen Anwendungen ist es eine Frage, ob sie den zentralen Speicher unterstützen oder nicht.
Antwort3
Die von Ihnen angegebene Methode aktualisiert die zentrale Datei /etc/ssl/certs/ca-certificates.crt. Sie werden jedoch feststellen, dass die meisten Anwendungen nicht für die Verwendung dieser Datei konfiguriert sind. Die meisten Anwendungen können so konfiguriert werden, dass sie auf die zentrale Datei verweisen. Es gibt keine automatische Möglichkeit, alles dazu zu bringen, diese Datei zu verwenden, ohne sie neu zu konfigurieren.
Es kann sinnvoll sein, Fehler in Ubuntu/Debian zu melden, um diese Datei standardmäßig zu verwenden.
Antwort4
Sie können Ihre benutzerdefinierten PKI-CAs in Ubuntu und anderen Distributionen hinzufügen: Hier ist der Link, er könnte für Sie hilfreich sein: Linux-Zertifikatsverwaltung