Ein Certificate Signing Request (CSR) ist ein Antrag auf erteilung eines Zertifikates, mit dem die Kommunikation zwischen Server und Client abgesichert werden kann.
Zur Erstellung eines CSR ist ein privater Schlüssel erforderlich. Ist dieser noch nicht erstellt worden, so kann dies leicht mit dem folgenden Kommando erledigt werden.
openssl genrsa -out private_key.pem 4096
Zur besseren Reproduzierbarkeit können die Einstellungen für den CSR in einer Datei abgelegt werden, die dann zur Erzeugung des CSR verwendet wird. Alternativ kann der CSR auch interaktiv erstellt werden indem die Werte von openssl erfragt werden. In diesem Beispiel wird nur auf die erste Variante eingegangen.
Die Konfigurationsdatei in diesem Beispiel sieht wie folgt aus. Dabei ist hier die Organisation Unit (Abteilung) auskommentiert. Wollen Sie diese mit angeben, so entfernen Sie einfach das #-Zeichen und tragen Sie den Abteilungsnamen ein.
[req] distinguished_name = req_distinguished_name prompt = no [req_distinguished_name] C = DE ST = Bundesland L = Stadt O = meine Organisation #OU = CN = www.meineAdresse.de
Soll mehr als eine Adresse im CSR enthalten sein, so muss die Datei noch etwas länger werden:
[req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no [req_distinguished_name] C = DE ST = Bundesland L = Stadt O = meine Organisation #OU = CN = www.meineAdresse.de [v3_req] keyUsage = keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = www.meineAdresse.de DNS.2 = meineAdresse.de DNS.3 = mx.meineAdresse.de DNS.4 = www.alternativeAdresse.de DNS.5 = alternativeAdresse.de
Mit dieser Datei kann nun der CSR erstellt werden.
openssl req -new -key private_key.pem -config req.cfg -out meineAdresse_de_csr.pem
Dieser CSR kann nun an eine Certificate Authority (CA) übermittelt werden oder zu Testzwecken mittels einer eigenen CA signiert werden.
Vor der Übermittlung an eine CA kann der CSR hier geprüft werden, ob er inhaltlich korrekt ist und ob es Bedenken gegen das Zertifikat gibt.