Eigene CA bauen und Zertifikate ausrollen

FIXME Grundegedanke war hier die ganze Hürde mit gekauften Zertifikaten zu umgehen, und das ganze noch einfacher zu gestalten. Für Organisationen intern, aber auch extern. Mit Installation von deinem DEB Paket in Ubuntu, und in Windows mit einem MSI. Wir erstellen eine eigene CA mit einem Wildcardzertifikat. Somit benötigen wir pro Domäne nur ein Zertifikat und können dies auf allen Geräten und Rechnern installieren. Daraus kann man natürlich auch Anmeldezertifikate (p12) erstellen, um die Sicherheit in relevanten Seiten hinauf zu schrauben.

Der Vorgang wird von dieser Seite hier beschrieben: https://wiki.ubuntuusers.de/CA/ FIXME

Für's erste hier mal einige nützliche OpenSSL-Befehle:

Zertifikat anzeigen lassen:

openssl x509 -in /etc/ldap/ssl/01cacert.pem -noout -text

Auflisten aller Zertifikate im globalen CA-Speicher von Java:

keytool -list -keystore /etc/ssl/certs/java/cacerts 

Firefoxcertifikate anzeigen lassen:

NSS_DEFAULT_DB_TYPE="sql" certutil -d ~/.mozilla/firefox/*.default -L

Firefoxcertifikat hinzufügen:

certutil -A -d sql:$HOME/.mozilla/firefox/2gjkcvvk.default  -i cacert.pem -n "tux.at Wildcard Selfsigned from ITEAS IT Services" -t TCP,TCP,TCP

Firefoxcertifikat löschen:

certutil -D -d sql:$HOME/.mozilla/firefox/2gjkcvvk.default  -i cacert.pem -n "tux.at Wildcard Selfsigned from ITEAS IT Services" -t TCP,TCP,TCP

CA Zertifikat in Chrome/Chromium importieren

ertutil -d sql:$HOME/.pki/nssdb -A -n '' -i cacert.pem -t TCP,TCP,TCP

Alle Zertifiakte des Systems anzeigen:

locate .pem | grep "\.pem$" | xargs -I{} openssl x509 -issuer -enddate -noout -in {}

Das CA ganz einfach unter /usr/local/share/ca-certificates/ ablegen. Mit dem nachfolgenden Befehl wird das Zertifikat in den globalen Zertifikatsspeicher des Systems importiert.

update-ca-certificates

Alternativ interaktiv: dpkg-reconfigure ca-certificates

Folgendes Tool muss in Ubuntu installiert werden.

apt install libnss3-tools

Policies in Firefox (Autoimport global)

Mit einem File ist es möglich sämtlich Dinge wie Berechtigungen, fixe Bookmarks und vieles vieles mehr dem System für alle Benutzer vor zu geben. Man kann Dinge Sperren, und auch Zertifikate ausrollen. Zertifikate funktionieren mit fully qualified path erst ab Firefox Version 65. Das gilt auch für Windows.

Beispielfile, Syntax getestet auf KDE Neon 18.04 LTS

cat /usr/lib/firefox/distribution/policies.json 
policies.json
{
 
 "policies": {
   "BlockAboutAddons": true,
   "BlockAboutConfig": true
 }
}

Beispiel zwei, mit Zertifikat:

policies.json
{
 
 "policies": {
   "BlockAboutAddons": true,
   "BlockAboutConfig": true,
      "Certificates": {
      "ImportEnterpriseRoots": true,
      "Install": ["/usr/local/share/ca-certificates/osit.cc-wildcard-selfsigned-cacert.crt"]
    }
 }
}

Und noch ein Beispiel:

policies.json
{
   "policies":{
      "DisableBuiltinPDFViewer":true,
      "Extensions":{
         "Install":[
            "https://addons.mozilla.org/firefox/downloads/file/1672871/ublock_origin-*.xpi",
            "https://addons.mozilla.org/firefox/downloads/file/879506/ip_address_and_domain_information-*.xpi",
            "https://addons.mozilla.org/firefox/downloads/file/1205950/keepassxc_browser-*.xpi"
         ]
      },
      "Certificates":{
         "ImportEnterpriseRoots":true,
         "Install":[
            "/usr/local/share/ca-certificates/osit.cc-wildcard-selfsigned-cacert.crt",
            "/usr/local/share/ca-certificates/osit.cc-Fortinet_CA_SSL_deepinspection.crt"
         ]
      }
   }
}

Man kann auch Zertifikate in dem Verzeichnis des Benutzers ablegen ~/.mozilla/certificates. Diese werden dann ohne den gesamten Pfad unter „Install“ vermerkt und auch automatisch installiert. Der globale Zertifikatsordner von Firefox in Ubuntu /usr/share/ca-certificates/mozilla funktioniert aus unverfindlichen Gründen nicht. Daher die Empfehlung immer den fully qualified path verwenden.

Beispielfile, Syntax getestet auf Windows 10

cat C:\Program Files\Mozilla Firefox\distribution\policies.json
policies.json
{
 
 "policies": {
   "BlockAboutAddons": true,
   "BlockAboutConfig": true,
      "Certificates": {
      "ImportEnterpriseRoots": true,
      "Install": ["C:\\Company\\bla.crt", "bla.crt"]
    }
 }
}

Auch hier gibt es zwei Möglichkeiten. Einmal ein fully qualified path, oder im Ordner C:\Program Files\Mozilla Firefox\distribution\certificates. Auch hier funktioniert das erst ab Firefox Version 65.

Policies in Chrome (Autoimport global)

In Windows muss der Ordner Stammzertifizierungsstellen für das CA manuel ausgewählt werden um in Edge oder IE zu trusten. Das trusted wie es aussieht auch Chrome und Firefox, das wird aber nochmal getestet.

Melde dich an um einen Kommentar zu erstellen.