Site x5

Eigene X.509 Root-CA erstellen (selbstsigniert)

Einleitung

TLS-Zertifikate sorgen dafür, dass Verbindungen im Internet oder im Intranet verschlüsselt und vertrauenswürdig sind. Normalerweise bezieht man Zertifikate von öffentlichen Zertifizierungsstellen (z. B. Let's Encrypt). Für interne Dienste (z. B. Test-Webserver, MQTT-Broker) kann man jedoch selbst eine Certificate Authority (CA) betreiben.

In diesem Tutorial lernst du:

Vorbereitung

Wir brauchen eine Linux Umgebung, ich nutze hierfür eine virtuelle Debian Maschine.

Zuerst überprüfen wir, ob OpenSSL installiert ist:

openssl version

Wenn die Ausgabe so ähnlich aussieht wie hier, dann passt alles:

OpenSSL 3.0.17 1 Jul 2025 (Library: OpenSSL 3.0.17 1 Jul 2025)

ansonsten muss OpenSSL erst installiert werden:

apt update && apt install openssl -y

Danach erstellen wir einen neuen Ordner (im Home-Verzeichnis), in dem alle Dateien abgelegt werden:

mkdir -p ~/certs
cd ~/certs

Root-CA Schlüssel & Zertifikat erstellen

Im nächsten Schritt erstellen wir den privaten Schlüssel für unsere Root-CA:

openssl genrsa -out myCA.key 2048

Anschließend erstellen wir ein selbst signiertes Root-CA Zertifikat:

openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.crt

OpenSSL fragt uns jetzt nach den sogenannten Distinguished Name (DN)-Feldern. Das sind Angaben, die später ins Zertifikat geschrieben werden. Die meisten Felder kann man leer lassen, aber Common Name (CN) sollte ausgefüllt werden.

Es reicht, hier lediglich Country Name (DE), Organization Name (DarkmatterBytes) und den Common Name (DarkMatterBytes Root CA) auszufüllen. Alles andere können wir mit einem Punkt beantworten, dadurch bleibt das entsprechende Feld leer.

Jetzt haben wir zwei Dateien:

root@debian-vm:~/certs# ls -l
insgesamt 8
-rw-r--r-- 1 root root 1257 12. Aug 14:57 myCA.crt
-rw------- 1 root root 1704 12. Aug 14:56 myCA.key


Wir können jetzt das Root-CA Zertifikat überprüfen:

openssl x509 -in myCA.crt -noout -text 

Wie wir sehen, sind Issuer und Subjekt die gleiche Entität, es ist ja auch ein selbst signiertes Zertifikat. Das bedeutet, dass die CA sich selbst bestätigt und keinen externen Aussteller hat.

Root-CA Zertifikat installieren

Um eine echte CA zu werden, müssten wir das Root-CA Zertifikat nun auf allen Geräten weltweit installieren. Da wir aber nur unsere eigene CA werden wollen, reicht es, das Zertifikat auf unseren eigenen Geräten zu installieren.

Wir werden das Zertifikat nun auf einer Windows Maschine installieren. Dazu muss das Zertifikat auf die entsprechende Maschine übertragen werden.

Wenn das Zertifikat auf der Windows Maschine gelandet ist, können wir loslegen:

  1. WIN + R --> mmc eingeben --> Ok

  2. Datei --> Snap-In hinzufügen/entfernen

  3. Nach unten scrollen --> Zertifikate auswählen --> Hinzufügen

  4. Computerkonto auswählen

  5. Lokalen Computer auswählen

  6. Vertrauenswürdige Stammzertifizierungsstellen --> Zertifikate --> Rechtsklick --> Alle Aufgaben --> Importieren

  7. Die Zertifikatsdatei auswählen

  8. Zertifikatspeicher auswählen

Wenn alles geklappt hat, ist unser Root-CA Zertifikat in der Liste zu sehen

Nun ist das Zertifikat im System installiert und wird z.B. vom Browser als gültiges Root-CA Zertifikat akzeptiert. Über das gleiche Menü lässt sich das Zertifikat auch wieder deinstallieren.

Root-CA Zertifikat verwenden

Im nächsten Post zeige ich, wie man mit dem eigenen Root-CA Zertifikat weitere Zertifikate signieren kann.