Was sind Multidomain Zertifikate?

Aus SSLplus
Zur Navigation springen Zur Suche springen

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.

SAN CSR mit X509v3 SubjectAltNames

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.

Kopf der openssl.cnf Datei

.

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">

  1. !/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