Neue Zertifikate mit OpenSSL erstellen

In diesem Artikel beschreibe ich kurz, wie wir OpenSSL TLS Zertifikate erstellen können, welche dann wir z.B. in unserem Webserver verwenden können. Dabei handelt es sich hier um Selbst signierte Zertifikate, die wir dann in einer entsprechenden lokalen CA hinterlegen können.

Um diese Pakete zu installieren, müssen wir im ersten Schritt sicherstellen, dass das Paket openssl installiert ist. Auf einem Debian System kann man das Paket wie folgt nachinstallieren:

apt update && apt install openssl -y

Erstellen PK und CSR

In diesem Abschnitt werden wir einen PK (Private Key) und einen CSR (Certificate Signing Requests) erstellen.

openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

Wenn wir diesen Befehl abgesetzt haben, müssen wir die folgenden Fragen beantworten. Der erste Parameter -newkey rsa:2048 gibt an, dass der Schlüssel 2048 bit lang sein soll, und mit dem RSA Algorithmus verschlüsselt werden soll.

Mit dem zweiten Parameter -nodes geben wir an, dass wir den Schlüssel nicht mit einem Kennwort verschlüsseln.

CSR aus einem vorhandenen PK erstellen

Der folgende Befehl kann verwendet werden, wenn wir ein CSR (Certificate Signing Requests) erstellen möchten, wir aber schon einen Private Key besitzen bzw. erstellt haben.

openssl req -key domain.key -new -out domain.csr

Jetzt müssen wir beim ersten Parameter -key den Dateinamen unseres Schlüssels angeben. Sobald wir das eingetragen haben, können wir den Befehl abschicken und dir CSR-Datei wird erstellt.

Selbstsigniertes SSL-Zertifikat erstellen

Jetzt wollen wir ein TLS-Zertifikat erstellen, welches nicht von einer externen Zertifizierungsstelle stammt.

openssl req -newkey rsa:2048 -nodes -keyout domain.key -x509 -days 365 -out domain.crt

Der erste Parameter gibt wieder den Verschlüsselungsalgorithmus an. Der Parameter -x509 gibt an, dass wir unser Zertifikat nicht von einer externen Zertifikatsstelle signieren lassen möchten. Und der folgende Parameter -days gibt an, wie lange unser Zertifikat gültig ist.