Self Signed Multidomain SSL Certificat für Apache HTTPd
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