Sichern Sie Ihren ISPConfig 3 verwalteten Mailserver mit einem gültigen Let’s Encrypt SSL-Zertifikat

Wenn Sie Ihren eigenen Mailserver betreiben, ist es am besten, sich mit einer SSL/TLS-Verbindung sicher mit ihm zu verbinden. Für diese sicheren Verbindungen benötigen Sie ein gültiges Zertifikat. In diesem Tutorial richten wir ein Let’s Encrypt-Zertifikat für unseren Mailserver ein, das sich automatisch erneuert.

Warnung: Dieses Lernprogramm basiert auf diesem Lernprogramm: https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/#create-auto-renewal-script-for-your-ispconfig-pem-file-ispserverpem, wurde aber so modifiziert, dass Sie ein separates Zertifikat für Ihren Mailserver und Ihr Control Panel haben. Wenn Sie dieses Tutorial schon einmal befolgt haben, könnte dieses Tutorial Ihr Setup zerstören.

Hinweis für ISPConfig 3.2: ISPConfig 3.2 ist in der Lage, während der Installation automatisch ein gültiges Let’s Encrypt SSL-Zertifikat für den Server-Hostnamen zu erstellen, das auch für den Mailserver verwendet wird. Es ist nicht notwendig, auf ISPConfig 3.2-Systemen manuell ein Let’s Encrypt SSL-Zertifikat wie hier beschrieben zu erstellen, es sei denn, Sie benötigen neben dem Server-Hostnamen andere Domainnamen im SSL-Zertifikat.

Voraussetzungen

  • Ihr Server sollte gemäß dem Perfect Server-Tutorial für Ihr Betriebssystem installiert werden.

Erste Schritte

Ich werde die folgenden Hostnamen für meinen Mailserver verwenden: mail.example.com, smtp.example.com, imap.example.com.

Ersetzen Sie alle rot unterstrichenen Hostnamen in diesem Tutorial durch Ihre eigenen.

Erstellen Sie die DNS-Einträge für Ihre(n) Hostnamen, so dass sie auf Ihren Server verweisen. Dies sollten A (und eventuell AAAA)-Einträge sein. Gehen Sie dann in der ISPConfig-Schnittstelle auf die Registerkarte Sites.

Ausstellen des Zertifikats

Klicken Sie unter Sites auf „Neue Website hinzufügen“. Legen Sie mail.example.com als Domäne fest. Deaktivieren Sie Auto-Subdomain, und aktivieren Sie das Kontrollkästchen Verschlüsseln.

Danach können Sie Ihre anderen Hostnamen als Aliasdomänen hinzufügen, indem Sie zur Liste der Aliasdomänen gehen und auf „Neue Aliasdomäne hinzufügen“ klicken. Wählen Sie smtp.example.com als Domäne und mail.example.com als übergeordnete Website. Deaktivieren Sie Auto-Subdomain und speichern Sie den neuen Eintrag. Wiederholen Sie dies für eventuelle andere Hostnamen.

Überprüfen Sie, ob das Zertifikat vorhanden ist. Sie können dies mit einem Tool wie https://www.sslshopper.com/ssl-checker.htmltun.

Es sollte in etwa so aussehen:

Screenshot der SSL-Prüfung

Wenn der/die Hostname(n) aufgeführt sind und keine weiteren Fehler vorliegen, können Sie fortfahren. Andernfalls überprüfen Sie die Fehler und beheben Sie sie, bevor Sie fortfahren.

Ersetzen des Zertifikats durch das Let’s Encrypt-Zertifikat

Jetzt können wir das aktuelle Zertifikat durch Ihr vertrauenswürdiges Zertifikat ersetzen. Melden Sie sich bei Ihrem Server an und führen Sie diese Befehle aus:

(ersetzen Sie mail.example.com durch den Hostnamen, den Sie für die Website verwendet haben)

cd /etc/postfix/
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak
ln -s /etc/letsencrypt/live/mail.example.com/fullchain.pem smtpd.cert
ln -s /etc/letsencrypt/live/mail.example.com/privkey.pem smtpd.key
systemctl restart postfix
systemctl restart dovecot

Das Zertifikat sollte nun für Ihren Postfix- und Dovecot-Server verwendet werden. Aber wir sind noch nicht fertig! Das Let’s Encrypt-Zertifikat wird alle 60 Tage erneuert, daher sollten wir den Prozess des Ersetzens des Zertifikats in Zukunft automatisieren, damit Sie es nicht vergessen können.

Richten Sie ein automatisches Erneuerungsskript ein

Öffnen Sie eine neue Skriptdatei:

nano /etc/init.d/le_mailserver_restart.sh

Fügen Sie diese in diese Datei ein (ersetzen Sie mail.example.com durch den von Ihnen verwendeten Hostnamen):

#!/bin/sh
### BEGIN INIT INFO
# Provides: LE MAILSERVER CERT AUTO UPDATER
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: LE MAILSERVER CERT AUTO UPDATER
# Description: Restart mail server automatically when a new Let's Encrypt certificate is issued.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecot

Um dieses Skript bei der Erneuerung automatisch auszulösen, werden wir incron installieren und einrichten.

apt install incron

Machen Sie das Skript ausführbar und erlauben Sie root die Verwendung von incron:

chmod +x /etc/init.d/le_mailserver_restart.sh
echo "root" >> /etc/incron.allow

Öffnen Sie nun den incrontab-Editor:

incrontab -e

Fügen Sie dies (wieder, ersetzen Sie mail.example.com durch den von Ihnen verwendeten Hostnamen) der Datei hinzu:

/etc/letsencrypt/archive/mail.example.com/ IN_MODIFY /etc/init.d/le_mailserver_restart.sh
A big thanks to forum user Ahrasis for the original code and tutorial.

Funktioniert nicht?

Ich hatte einmal ein Problem damit, weil Let’s Encrypt eine der Alias-Domänen als Hauptdomäne verwendete. Sie können die Hauptdomain in dem oben erwähnten SSL-Tool als „Common name“ finden oder indem Sie den Inhalt von /etc/letsencrypt/live auflisten, um zu sehen, welche der (Alias-)Domains dort einen Ordner hat.

Wenn Sie immer noch ein Problem haben, öffnen Sie einen Thread im Forum, damit andere Ihnen helfen können.

Das könnte dich auch interessieren …