Linux mit eigenen SSL Zertifikaten (ROOT CA installieren)

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!

2 Gedanken zu „Linux mit eigenen SSL Zertifikaten (ROOT CA installieren)“

Schreibe einen Kommentar