Um selbst ausgestellte Zertifikate zu nutzen, ist ein manueller Import der eigenen ROOT CA in den Zertifikatsspeicher des Linux Systems erforderlich.
In XCA das Root Zertifikat unserer CA als PEM (*.crt) exportieren. (PEM Textformat mit Kopf- und Fußzeilen)
Fedora 28
Das Zertifikat in den System Store installieren:
$ cp /opt/BACHMANN.LAN_ROOT_CA.crt /etc/pki/ca-trust/source/anchors/ $ update-ca-trust extract
Chromium, Vivaldi – Greifen auf das installierte Zertifikat im System Store zurück. Keine weiteren Schritte mehr notwendig.
Firefox – Ab der Version 50 kann automatisch nach installierten CA Zertifikaten im System gesucht werden.
Um das zu erreichen im Browser über about:config den Eintrag security.enterprise_roots.enabled auf true setzen.
Hat Fedora vorbildlich gelöst. Funktioniert ohne weiteres gefrickel!
Debian 9, Ubuntu 18.04, Linux Mint 19
Das Zertifikat in den System Store installieren:
$ cp /opt/BACHMANN.LAN_ROOT_CA.crt /usr/share/ca-certificates/ $ dpkg-reconfigure ca-certificates
Das neue Zertifikat auswählen und weiter.
Diese Installation funktioniert nur mit Anwendungen die den CA System Store nutzen. Alle gängigen Browser nutzen ihn nämlich nicht!
Für Chromium, Firefox und Co, muss das Zertifikat in die nssdb des aktuellen Benutzers installiert werden. (Das Backend für die Mozilla NSS Library.)
Zertifikat für den aktuellen Benutzer installieren:
$ certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "BACHMANN.LAN ROOT-CA" -i /opt/BACHMANN.LAN_ROOT_CA.crt $ certutil -d sql:$HOME/.pki/nssdb -L Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI BACHMANN.LAN ROOT-CA C,,
Chromium, Vivaldi – Greifen auf das installierte Zertifikat in der nssdb des Benutzers zurück.
Firefox – Nutzt seine eigene Datenbank im Profil des Benutzers. Zertifikat muss in Firefox importiert werden.
Funktioniert, ist aber nicht wirklich zufriedenstellend.
Die endgültige Lösung!
Damit alle Anwendungen den CA System Store nutzen, muss das p11-kit-modules Paket installiert werden und das NSS build-in trust roots Modul
mit der p11-kit-trust.so ersetzt werden. Das p11-kit bietet einen Drop-In-Ersatz für die libnssckbi.so, der als Adapter für die systemweiten Stammzertifikate fungiert, die in /etc/ssl/certs installiert sind.
Abhängig von der Distribution kommt z.B. Ubuntu mit mehrere Kopien der libnssckbi.so Library (hard-coded trust roots), die auch alle ersetzt werden müssen!
$ find / -type f -name "libnssckbi.so" /usr/lib/firefox/libnssckbi.so /usr/lib/thunderbird/libnssckbi.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so # falls nicht schon im System installiert sudo apt install -y p11-kit libnss3 # für jede Datei - backuppen und neuen symlink erstellen sudo mv /usr/lib/firefox/libnssckbi.so /usr/lib/firefox/libnssckbi.so.BAK sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox/libnssckbi.so sudo mv /usr/lib/thunderbird/libnssckbi.so /usr/lib/thunderbird/libnssckbi.so.BAK sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/thunderbird/libnssckbi.so sudo mv /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so.BAK sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
Einfacher geht es mit diesem Script. Es findet alle libnssckbi.so Dateien, erstellt ein backup und einen neuen symlink zur p11-kit-trust.so Datei.
#!/bin/bash sudo apt-get update && sudo apt-get install -y p11-kit libnss3 find / -type f -name "libnssckbi.so" 2>/dev/null | while read line; do sudo mv $line ${line}.BAK sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so $line done
Alle Browser nutzen jetzt das installierte Zertifikat im CA System Store, keine weiteren Schritte mehr notwendig, perfekt!
Wie funktioniert das bei openSuse LEAP?
Kann ich dir nicht sagen, hab die Distro nicht im Einsatz.