Let's Encrypt SSL-Zertifikat bei hostnet für Mailserver (sendmail/dovecot) einbinden

Der Hoster hostnet bietet seinen Kunden mittels der Kommandozeile an, sich für die eigene Domain kostenlose SSL-Zertifikate über den Anbieter Let's Encrypt zu erstellen.

Dafür gibt es auch eine entsprechende Anleitung im FAQ-Bereich: Wie kann ich Let's Encrypt nutzen?

Allerdings deckt diese Anleitung nur die Einbindung des Zertifikats für den Apache Webserver ab. Möchte man das Zertifikat auch für die Maildienste (hostnet verwendet sendmail und dovecot) verwenden, sind noch zusätzliche Schritte nötig. Welche genau, das zeigt dieser Artikel.

Voraussetzungen

Ich nehme an, dass Du bereits per "letsencrypt" auf der Kommandozeile ein Zertifikat von Let's Encrypt generiert hast. In meiner Anleitung nehme ich auch die Demo-Domain "mycloudhosting.de" an. Die generierten Zertifikatsdateien sollten unter /etc/letsencrypt/live/mycloudhosting.de liegen.

Hinweis: Bei mir hat das Kommandozeilentool "letsencrypt" das Zertifikat nicht in dem angegebenen Verzeichnis generiert, sondern in /usr/iports/etc/letsencrypt/live/mycloudhosting.de abgelegt. Sollte dies auch bei dir der Fall sein, musst Du entsprechend diesen Pfad nutzen.

SSL-Zertifikat bei sendmail/dovecot einbinden

Die Konfiguration von sendmail und dovecot erwarten, dass das SSL-Zertifikat unter "/usr/ssl/" abgelegt ist. Da das Zertifikat von Let's Encrypt nur 90 Tage gültig ist und daher ständig erneut wird, empfehle ich die Zertifikatsdateien über Symbolische Links hier einzubinden:


ln -s /etc/letsencrypt/live/mycloudhosting.de/fullchain.pem /usr/ssl/cacert.pem
ln -s /etc/letsencrypt/live/mycloudhosting.de/cert.pem /usr/ssl/wild.han.pem
ln -s /etc/letsencrypt/live/mycloudhosting.de/privkey.pem /usr/ssl/wild.han.key.pem
ln -s /etc/letsencrypt/live/mycloudhosting.de/privkey.pem /usr/ssl/wild.han.key.smtp.pem

Anschließend müssen die Berechtigungen und der Eigentümer angepasst werden, ansonsten verweigert sendmail mit STARTTLS seinen Dienst:


sudo chown -h admin:wheel /usr/ssl/wild.han.key.smtp.pem
sudo chmod -h 644 /usr/ssl/cacert.pem /usr/ssl/wild.han.pem /usr/ssl/wild.han.key.pem
sudo chmod -h 600 /usr/ssl/wild.han.key.smtp.pem

Dann die Dienste sendmail und dovecot neustarten:


sudo restart_sendmail && sudo restart_dovecot

SSL-Zertifikat / Verbindung testen

Mit folgendem Befehl kann auf der Kommandozeile das Zertifikat bzw. die SSL-Verbindung getestet werden:


openssl s_client -starttls smtp -connect mycloudhosting.de:587 -state -showcerts

Alternativ kann auch der Webdienst CheckTLS zum Testen des Zertifikats verwendet werden.

Automatische Verlängerung des Zertifikats per Cron

Bei der Einrichtung des Cronjobs zur automatischen Verlängerung ist zu beachten, dass nicht nur der Apache Webserver neugestartet werden muss, sondern auch entsprechend sendmail und dovecot:


/usr/iports/bin/letsencrypt certonly --renew-by-default --webroot -w /usr/local/www/apache24/noexec/mycloudhosting.de -d mycloudhosting.de -d www.mycloudhosting.de && service apache24 restart && service sendmail restart && service dovecot restart

Update 05.12.2016: Hostnet stellt mit install_le_cert jetzt ein eigenes Kommandozeilen-Tool bereit, welches zur Erstellung und Erneuerung von Lets Encrypt Zertifikaten genutzt werden kann. Dieses beherrscht auch die Einbindung des SSL-Zertifikats in die standardmäßig verwendeten Mail-Dienste dovecot und sendmail. Entsprechend hat hostnet auch seine Anleitung überarbeitet: https://www.hostnet.de/faq/wie-kann-ich-letsencrypt-nutzen.html

German | 02. June 2016
Stored in

Comments

/usr/iports/etc/letsencrypt/live/mycloudhosting.de ist hier identisch mit /etc/letsencrypt/live/mycloudhosting.de.

Auf dem Managed-Root Systemen gibt es einen symlink, der /usr/iports/etc auf /etc verweist. Einige Anwendungen zeigen deshalb manchmal die eine und andere die andere Variante.

Wir empfehlen aber immer nur /etc/... in den Scripten und Configs zu benutzen, falls sich der symlink mal ändert. So passt es auch eher in die normalen Pfade, die man auch von anderen Distros kennt ;)

Jimmy Koerting, hostNET Support

Add new comment