SSL-Zertifikat für Apache und Courier (debian)

Zertifikat erzeugen

Folgende Anleitung klappt z. B. mit domainfactory. Sie kann sowohl für neue SSL-Schlüssel, als auch bei einer Verlängerung verwendet werden.

cd ~
mkdir cert
cd cert
openssl genrsa -out example.com.key 2048
openssl req -new -key example.com.key -out example.com.csr

Bei Namen darauf achten, dass dieser genau gleich ist, wie im Formular von domainfactory. Die Formular-Daten (z. B. Telefonnummer) dürfen sich bei einer Verlängerung nicht ändern. Für Wildcard-Domains die Form *.example.com verwenden.

Die CSR-Datei enthält nur den Public-Key des Schlüsselpaares. Diesen kann die CA dann signieren, ohne den Private-Key zu kennen. Die CSR-Datei nun bei domainfactory einreichen (neu oder Verlängerung).

Zurück kommen dann zwei Dateien: example.com.crt und RapidSSL_Intermediate_CA.pem.

Die beiden Dateien ebenfalls in ~/cert kopieren.

Dann die Dateien für andere Benutzer unlesbar machen: chmod 600 *

Keys OpenSSL hinzufügen:

cp RapidSSL_Intermediate_CA.pem /etc/ssl/certs
cp example.com.crt /etc/ssl/certs
cp example.com.key /etc/ssl/private
chgrp 640 /etc/ssl/private example.com.key
chgrp ssl-cert /etc/ssl/private example.com.key
#chgrp root /etc/ssl/private example.com.key

Quelle: https://www.df.eu/de/support/df-faq/ssl-zertifikate/externe-einbindung/csr-erstellen/

Apache vhost mit SSL

<VirtualHost *:443>
        ServerName example.com
        [...]
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/example.com.crt
        SSLCertificateKeyFile /etc/ssl/private/example.com.key
        SSLCertificateChainFile /etc/ssl/certs/RapidSSL_Intermediate_CA.pem
</VirtualHost>

Courier mit SSL/TLS

apt-get install courier-mta-ssl
apt-get install courier-imap-ssl #für IMAP
#apt-get install courier-pop3-ssl #für pop3

cd ~/cert
cat example.com.key example.com.crt RapidSSL_Intermediate_CA.pem > example.com.pem
chmod 600 example.com.pem
cp example.com.pem /etc/courier/imapd.pem
#cp example.com.pem /etc/courier/pop3d.pem
cp example.com.pem /etc/courier/esmtpd.pem

chgrp daemon /etc/courier/*.pem
chmod 640 /etc/courier/*.pem
chown root /etc/courier/*.pem

Heartbleed Fehlerbeseitigung

Die Heartbleed-Sicherheitslücke war ca. 2 Jahre offen und erlaubt potentiell Zugriff auf private SSL-Schlüssel (und damit auf alle übetragenen Passwörter). Derzeit ist nicht bekannt, ob die Lücke während dieser 2 Jahre ausgenutzt wurde. Allerdings ist das durchaus möglich, denn potentielle Angreifer hatten 2 Jahre Zeit, die Lücke vor ihrer Beseitigung zu finden und zu nutzen.

D.h. wenn ein Server zu irgendeinem Zeitpunkt von Heartbleed betroffen war, sollte obiges Procedere durchgeführt werden.

Heartbleed betrifft nur OpenSSL-Versionen 1.0.1 bis 1.0.1f. Potentiell betroffen sind insbesondere viele Debian 7(wheezy)-Server, denn hier kommt standardmäßig OpenSSL 1.0.1 zum Einsatz. Wurde der Server vor Einspielung des Debian-Sicherheitspatches vom 08.04.2014 betrieben, dann ist ein Zertifikataustausch (s.o) fällig.

Sollte ein Angreifer den privaten SSL-Key abgreifen, dann kann er rückwirkend den kompletten SSL-Traffic entschlüsseln (sofern er diesen mitgeschnitten hat). Das sollte jedoch nicht klappen, wenn in der Vergangenheit Forward Secrecy zum Einsatz kam (und von allen Clients auch verwendet wurde!). Hier sieht man mal, dass FS ziemlich wichtig werden kann.

Maßnahmen:

  • Sicherstellen, dass alle OpenSSL-Updates eingespielt sind (Achtung, bei Debian meldet sich das gepatchte OpenSSL mit "openssl version" weiterhin mit 1.0.1e, da Patches zurückportiert wurden). Danach am besten den Server neu starten (OpenSSL wird potentiell von vielen Diensten/Anwendungen verwendet)
  • NEUEN private-key erstellen (wie oben) und neues SSL-Zertifikat mittels CSR-Datei beantragen
  • SSL-Zertifikat einspielen (wie oben)
  • Altes SSL-Zertifikat ggf. widerrufen (hiermit ist Benutzern lediglich ersichtlich, dass das alte SSL-Zertifikat nicht mehr vertrauenswürdig ist. Ansonsten bringt dies keinen Sicherheitsgewinn und schützt insbesondere nicht die übertragenen Daten. D.h. wenn das alte SSL-Zertifikat nicht mehr eingesetzt wird, kann man sich diesen Schritt eigentlich sparen.)
  • Alle Passwörter, die SSL-verschlüsselt übertragen wurden, müssen erneuert werden.
  • SSH-Keys sind nicht von Heartbleed betroffen.

Quelle: https://www.heise.de/newsticker/meldung/Der-GAU-fuer-Verschluesselung-im-Web-Horror-Bug-in-OpenSSL-2165517.html