Was sind Multidomain Zertifikate?
Multidomain SSL Zertifikate sind SSL Zertifikate, die um spezielle Merkmale erweitert wurden, um neben dem Common Name für weitere Domainnamen zu gelten, so dass eine fehlerfreie Verwendung in Browsern möglich ist.
Unterschiede zum normalen SSL Zertifikat
Bei einem SAN oder Multidomain Zertifikat wird der distinguished Name (DN) um Subject Alternative Names erweitert. Mit dem Präfix DNS: wird den auswertenden Clients mitgeteilt, dass es sich hier um Servernamen handelt.
Beim Erzeugen des Zertifikates bzw. schon wenn der CSR generiert wird, können diese Merkmale als x509v3 Erweiterungen hinterlegt werden.
Notwendige Vorbereitungen
Prinzipiell ist es nicht zwingend notwendig einen speziellen CSR für ein Multidomain SSL Zertifikat zu erzeugen. In der Regel nehmen die Zertifizierungsstellen die alternativen Namen während des Ausstellungsprozesses entgegen.
Einige Serververwaltungsprogramme erlauben aber schon beim Erzeugen des CSR die Alternativnamen in diesen mit aufzunehmen. Im Falle von OpenSSL erfolgt dies über eine entsprechende Anpassung der openssl.cnf
Datei.
Anpassung der openssl Konfiguration
In der openssl.cnf
Datei können Variablen definiert werden.
.
Hier kann man einen Default Eintrag
DNSALT="beliebiger-standard-servername.de"
anlegen. Andernfalls kann die Zeile auch ausgelassen werden.
Des weiteren muss im Abschnitt [ req ]
die Zeile:
req_extensions = v3_req
eingetragen werden.
Im Abschnitt [v3_req]
fügt man die Zeile
subjectAltName=${ENV::DNSALT}
hinzu.
Mit einem kleinen Skript kann man dann komfortabel SAN Namen in den CSR eintragen.
<source lang="bash">
- !/bin/bash
DNSALT="" FQDN="xxx"
while [ "$FQDN" != "" ] do
read -p "Enter fully qualified domainname (SAN): " FQDN if [ "$DNSALT" == "" ] then
DNSALT="DNS:$FQDN"
elif [ "$FQDN" == "" ] then
echo $DNSALT
else
DNSALT="$DNSALT,DNS:$FQDN"
fi
done
export DNSALT
while [ "$PRIVKEY" == "" ] do
read -p "Enter the name of the dignated private keyfile: " PRIVKEY
done
while [ "$CSRFILE" == "" ] do
read -p "Enter name of designated CSR file: " CSRFILE
done
openssl req -new -newkey rsa:2048 -out $CSRFILE -keyout $PRIVKEY -config /home/henning/openssl.cnf </source>
Weiterführende Links
- Dokumentation für OpenSSL
- Multidomain SSL Zertifikate bei icertificate.eu