Self Signed Multidomain SSL Certificat für Apache HTTPd

Aus Laub-Home Wiki

Wer nur über eine einzige IP Adresse verfügt, aber mehrere SSL Hosts darauf betreiben will, der braucht ein Multidomain Zertifikat. Wie man dieses erstellt und dann im Apache einbindet, versuche ich hier kurz zu erklären.
Als erstes werden folgende Requirements benötigt:

  • openssl
  • apache mod_ssl
aptitude install openssl
a2enmod ssl
apache2ctl restart

Erstellung des Zertifikates

Als erstes wechseln wir in den Ordner wo die SSL Zertifikate liegen sollen, ich nutze dafür /etc/apache2/ssl

cd /etc/apache2/ssl

Nun wird als nächstes der Private Key erzeugt:

openssl genrsa -out multidomain-private.key 1024

Nun muss eine CSR (Certificate Signing Request) Datei erzeugt werden:

openssl req -new -key multidomain-private.key -out multidomain.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:BaWu
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:laub-home.de
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:www.laub-home.de
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Bei den Fragen einfach die gewünschten Werte eingeben.
Wichtig!!! Bei Common Name sollte die erste Domain des Multidomain Zertifikates eingetragen werden.
Bei der Passwort Frage die Felder einfach leer lassen.

Als nächstes erstellen wir ein "Extension Config File", das nach erstellung des Zertifikates gelöscht werden kann. In diese Konfigurationsdatei werden nun alle weiteren Domain eingetragen. Wichtig!!! Hier muss auch die oben bei Common Name angegebene Domain eingetragen werden:
multidomain.cnf

subjectAltName=DNS:www.laub-home.de,DNS:wiki.laub-home.de,DNS:laub-home.de 

Nun kann mit Hilfe der Konfigurationsdatei und dem CSR das Multidomain Zertifikat erstellt werden:

openssl x509 -req -days 7300 -in multidomain.csr -signkey multidomain-private.key -text -extfile multidomain.cnf -out multidomain.crt 

Fertig, nun kann das ganze in den Apache Vhosts verwendet werden.

Einrichtung SSL Zertifikat im Apache vHost

um eine Domain SSL zu verschlüsseln sind folgende Zeilen in der vhost Konfiguration wichtig:

<VirtualHost *:443>
        SSLEngine On
        SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
        SSLCertificateFile /etc/apache2/ssl/multidomain.crt
        SSLCertificateKeyFile /etc/apache2/ssl/multidomain-private.key
</VirtualHost>

Wenn alles konfiguriert ist den Apache neustarten:

/etc/init.d/apache2 restart