Unter Linux gibt es verschiedenste Wege, SSL-Zertifikate zu verwalten und diesen das Vertrauen auszusprechen. Auf welche Quellen sich eine Anwendung beruft ist meist nur sehr schwer herauszufinden. Daher stelle ich hier mal ein paar Möglichkeiten vor, wie man Zertifikaten (wie z. B. der der Zertifizierungsstelle CACert) das Vertrauen aussprechen kann.
Zuersteinmal sollte man sich die Zertifikate der jeweiligen Zertifizierungsstelle im pem-Format herunterladen. Diese Dateien kann man nun (als root) im Verzeichnis /etc/ssl/certs ablegen, dabei sollte man einen aussagekräftigen Namen verwenden, damit man diese Dateien, falls nötig, wiederfindet. Damit nun das Zertifikat auch von Programmen gefunden werden kann, ist es nötig, einen speziellen Symlink auf die Zertifikats-Datei anzulegen. Dazu benötigt man zuerst den Hash-Code des Zertifikats. Diesen bekommt man z. B. mit folgendem Befehl:
mlohr@home:/etc/ssl/certs$ openssl x509 -in CACert_root.pem -noout -hash
5ed36f9
Die Zeichenkette 5ed36f9 ist der gesuchte Hash. Für den Namen des Symlinks hängt man noch .0 (Punkt Null) hintendran:
mlohr@home:/etc/ssl/certs$ sudo ln -s CACert_root.pem 5ed36f9.0
Dieses war der erste Streich, doch der zweite folgt sogleich. Da man nicht immer root ist um solche Vorhaben durchzuführen gibt es von gnupg auch eine Variante, Zertifikaten zu vertrauen (inwiefern dieser und der eben beschriebene Mechanismus zusammen arbeiten weiß ich nicht, da muss ich mich wohl nochmal schlaulesen): In seinem Home-Verzeichnis einfach die Datei ~/.gnupg/trustlist.txt erstellen und in diese Datei die Hashes der zu vertrauenden Zertifikate eintragen. Als Beispiel hier meine Datei mit den Hashes der beiden CACert-Zertifikate:
mlohr@home:~/.gnupg$ cat trustlist.txt
135CEC36F49CB8E93B1AB270CD80884676CE8F33
DB4C4269073FE9C2A37D890A5C1B18C4184E2A2D
Ich hoffe, das hilft erstmal weiter. Wenn jemand Wissenswertes zu den Themen weiß, kann er mir das gerne mitteilen, dann erweitere ich diesen Artikel – oder eben als Kommentar gerade hinterlegen. Gleiches gilt natürlich auch bei groben Fehlern etc.