Werbefrei,
für immer!
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…

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 /tmpsudo mkdir cerJetzt wechselt Ihr in das leere Verzeichnis „cer“ und bleibt auch dort…
cd /cerJetzt 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.cnfWenn der Editor nano (noch) nicht installiert ist, einfach mit…
sudo apt-get install nano -ynachziehen…
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!):

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
Nachdem das erledigt ist, listet man sich die Dateien in seinem Arbeitsverzeichnis auf…
lsDas sieht (passend zu meinem Beispiel!) dann so aus…

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

