Certificate Signing Request – CSR – für ein SSL Zertifikat mit SAN erstellen

Bin ich drüber gestolpert, dass der etwas veraltete Ansatz mit einem Einzeiler irgendwie nicht (mehr) so richtig funktioniert und modernen Browsern nur der Common Name nicht mehr reicht. Also wie genau geht das nun wieder? Genau das möchte ich hier dokumentieren.

Prinzipiell muss man, um sog. „Subject Alternative Names“ oder auf deutsch „Alternative Antragstellernamen“ im Zertifikat zu hinterlegen, ein sog. „SAN Config File“ erstellen. Dieses Config File ist eigentlich eine simple Text Datei, in welcher man alle wichtigen Angaben zum Request zusammenfasst und an openssl übergibt. Das mache ich hier im Beispiel auf einem Ubuntu Server 24.04 LTS, wie gewohnt mit „openssl“. Unter Windows macht man das Ganze am besten mit der PowerShell und ebenfalls openssl. Dazu installiert man das openssl Modul bspw. via Chocolatey. Am Ende also der gleiche Ansatz.

Ich erläutere das hier beispielhaft für meine eigen Domain troublenet.de und möchte also die SAN’s „troublenet.de“ aber auch „www.troublenet.de“ im Zertifikat bereitstellen und ich möchte einen robusten 4096-Bit-Schlüssel verwenden (empfehle ich Stand heute generell für neue Zertifikate). Im Certificate Viewer soll das also dan so aussehen…

San csr 01

Natürlich müssen diese Angaben durch Eure eigenen Informationen ersetzt werden! Ihr erkennt diese Angaben im Config File an den Einträgen, welche mit „DEIN_xxx“ bginnen und ich habe die Zeilen im Config File hervorgehoben. „C = DE“ könnt Ihr unverändert lassen, wenn der Hauptsitz Eures Unternehmens oder Euer eigener Wohnsitz in Deutschland ist.

Ok, dann bauen wir uns zuerst mal die SAN Config zusammen. Ich wechsle dafür in das „tmp“ Verzeichnis, erstelle dort einen separaten „Arbeitsordner“, um die Dateien später nicht überall suchen zu müssen.

cd /tmp
sudo mkdir cer

Jetzt wechselt Ihr in das leere Verzeichnis „cer“ und bleibt auch dort…

cd /cer

Jetzt bereitet Ihr lokal, auf Eurem PC, eine einfache Text-Datei vor, in welcher Ihr Eure Angaben bereits angepasst habt.

Verwendet dazu diese Vorlage und passt die markierten Zeilen und Einträge an.
Wir brauchen diese Datei dann nur für Copy & Paste…

[ req ]
default_bits       = 4096
prompt             = no
default_md         = sha256
req_extensions     = req_ext
distinguished_name = dn

[ dn ]
C  = DE
ST = DEIN_Bundesland
L  = DEINE_Stadt
O  = DEINE_Organisation
OU = DEINE_Organisationseineheit
CN = DEINE_primäre_Domain (troublenet.de)

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = DEINE_primäre_Domain (troublenet.de)
DNS.2 = DEIN_SAN (www.troublenet.de)

Zurück auf dem Server, erstellt Ihr das SAN config File. Der Name und die Endung sind zweitrangig, es geht um den Inhalt. Also…

sudo nano san.cnf

Wenn der Editor nano (noch) nicht installiert ist, einfach mit…

sudo apt-get install nano -y

nachziehen…

Jetzt öffnet sich der Editor und Ihr fügt jetzt den Inhalt Eures Config Files via Copy & Paste ein.

Das würde dann in etwa so aussehen (Angaben unter [ dn ] nur beispielhaft, bitte anpassen!):

San csr 02

Nachdem wir das erledigt haben, erstellen wir unseren CSR.

Wichtig, die Dateinamen des CSR und des Key sind natürlich frei wählbar, also anpassen!
Dann einfach folgende Zeilen via Copy & Paste in die Shell und ENTER…

openssl req -new -newkey rsa:4096 -nodes \
  -out DEINE_DOMAIN.csr \
  -keyout DEINE_DOMAIN.key \
  -config san.cnf
San csr 03

Nachdem das erledigt ist, listet man sich die Dateien in seinem Arbeitsverzeichnis auf…

ls

Das sieht (passend zu meinem Beispiel!) dann so aus…

San csr 04

Die Datei DEINE_DOMAIN.csr kann nun an Eure Zertifizierungsstelle übergeben werden, damit das Zertifikat ausgestellt werden kann.

Beitrag Teilen via...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite ist durch reCAPTCHA und Google geschützt Datenschutz-Bestimmungen und Nutzungsbedingungen anwenden.