Eigene Zertifizierungsstelle und Zertifikate mit Hilfe von XCA

Erstellt am: 18.12.2021 - letztes Update: 02.02.2022

Mit Hilfe von XCA ist es recht einfach eine eigene Zertifizierungsstelle (CA - Certificate Authority) zum Ausstellen von Zertifikaten zu erstellen. Beachten sollte man das die mit XCA erstellten Zertifikate nicht standardmäßig vertraut werden, da es sich nicht um eine offizielle Zertifizierungsstelle handelt. Dazu muss das erstellte CA-Zertifikat im Browser bzw. Betriebssystem importiert werden.

XCA gibt es für macOS, Linux und Windows und ist damit universell einsetzbar. Benutzt werden können die damit erstellten Zertifikate z.B. für das Webinterface vom NAS oder Router. Auch wären damit EAP-TLS für WLAN, oder private S/MIME E-Mail Verschlüsselung möglich. In dieser Anleitung geht es aber um den Aufbau einer CA und das Erstellen von Server-Zertifikaten.

Nach Start des Programms muss als erstes eine verschlüsselte Datenbank erstellt werden, in der dann später die CA und Zertifikate sicher gespeichert werden. Unter Datei / Neue Datenbank eine Datenbank mit Passwort anlegen. Dazu unter Save As: die Bezeichnung der neuen Datenbank angeben und unter Where: den Speicherort.

XCA Datenbank erstellen

XCA Datenbank erstellen

Damit ist die Datenbank erstellt und es können Zertifikate angelegt werden.

Erstellung Zertifizierungsstelle (CA)

XCA CA Zertifikat ertellen

Bei dem ersten Zertifikat handelt es sich um das CA-Zertifikat und ist damit ein selbst signiertes Zertifikat, da es in der Hierarchie an erster Stelle steht. Als Vorlage wird [default] CA ausgewählt und alle Eigenschaften übernommen.

XCA CA Zertifikat ertellen

Unter Inhaber ist es nicht notwendig alle Felder auszufüllen, wichtig wäre nur der commonName (cn).

XCA CA Zertifikat ertellen

Im nächsten Schritt wird der private Schlüssel der CA erzeugt. Schlüsseltyp und Schlüssellänge können angepasst und als Standard gespeichert werden. Die später mit dieser CA erstellten Zertifikate sollten die gleichen Einstellungen verwenden.

XCA CA Zertifikat ertellen

XCA CA Zertifikat ertellen

Normalerweise wären keine weiteren Anpassungen notwendig, es empfiehlt sich aber die Gültigkeit und Zeitspanne der Zertifikate unter Erweiterungen anzupassen. Die Gültigkeit wurde auf den 01.01.2018 vorverlegt, da sonst neu ausgestellte Zertifikate häufig nicht mehr als vertrauenswürdig eingestuft werden, wenn die Laufzeit länger als zwei Jahre ist.

Seit März 2018 werden z.B. vom Apple-eigenen Browser Safari nur noch Zertifikate mit einer Laufzeit von maximal 2 Jahren unterstützt. Das wurde ab den 01. September 2020 noch weiter auf 1 Jahr verkürzt. Andere Anbieter von Internet-Browsern werden da nachziehen. Zertifikate die vor März 2018 ausgestellt wurden betrifft die Laufzeitverkürzung nicht und können unbegrenzt ausgestellt werden.

XCA CA Zertifikat ertellen

XCA CA Zertifikat ertellen

Damit ist das Erstellen der Root-CA abgeschlossen und das erste Server-Zertifikat kann erstellt werden.

Erstellung Server-Zertifikat

XCA Server Zertifikat ertellen

Dazu wählt man zum Signieren die zuvor erstellte CA aus und als Vorlage [default] TLS_server.

XCA Server Zertifikat ertellen

Auch hier ist für die Funktionsweise nicht notwendig alles auszufüllen, wichtig ist nur das Feld commonName (cn) für den DNS Namen. Möchte man mehrere DNS Namen, Such-Domains oder IP-Adressen anlegen, dann hat man später noch die Möglichkeit dazu.

XCA Server Zertifikat ertellen

Der private Schlüssel des Server-Zertifikates sollte den gleichen Schlüsseltyp und Schlüssellänge haben wie das zuvor erstellte CA-Zertifikat.

XCA Server Zertifikat ertellen

XCA Server Zertifikat ertellen

Wichtig wären auch hier die Gültigkeit und Zeitspanne des Zertifikates zu ändern. Möchte man zusätzlich den DNS Namen mit einer Suchdomain angeben, oder die IP-Adresse, dann wäre das unter dem Punkt Subject Alternative Name (SAN) möglich.

XCA Server Zertifikat ertellen

XCA Server Zertifikat ertellen

In der Zertifikatsübersicht ist die Hierarchie gut zu erkennen, alle Server bzw. Client-Zertifikate werden unter der CA aufgeführt. Abschließend kann das jeweilige Zertifikat über die Exportfunktion im jeweiligen Format exportiert werden.

XCA Zertifikate

Für die privaten Schlüssel gibt es einen eigenen Reiter. Bei diesen Schlüsseln ist aber Vorsicht geboten, denn die sollten nicht in fremde Hände gelangen. Der private Schlüssel von der CA sollte niemals exportiert werden! Wird eine Datenbank bzw. Zertifikat doch einmal kompromittiert, dann wäre eine neue CA schnell erstellt.

XCA private Schlüssel


Erstellung SAN Server-Zertifikat

Es ist möglich mehrere DNS Name oder IP-Adressen im Server-Zertifikat zu hinterlegen.

XCA SAN Zertifikat

Wichtig ist der Typ, dieser muss mit dem Inhalt übereinstimmen. Bei diesem Beispiel werden folgende Seiten als vertrauenswürdig eingestuft:

https://example.com
https://example.org
https://example.net
https://192.168.1.1

Der DNS Name example.com wird aus dem Feld commonName (DNS:copycn) kopiert, das sollte man auch grundsätzlich so beibehalten.

XCA SAN Zertifikat

XCA SAN Zertifikat