Mailserver Sicherheit · 4 min read · Sep 08, 2025
Sichern Sie Ihren von ISPConfig 3 verwalteten Mailserver mit einem gültigen Let's Encrypt SSL-Zertifikat

Wenn Sie Ihren eigenen Mailserver betreiben, ist es eine bewährte Praxis, sich sicher mit einer SSL/TLS-Verbindung zu verbinden. Sie benötigen ein gültiges Zertifikat für diese sicheren Verbindungen. In diesem Tutorial richten wir ein Let’s Encrypt-Zertifikat für unseren Mailserver ein, das automatisch erneuert wird.
Warnung: Dieses Tutorial basiert auf diesem Tutorial: https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/, wurde jedoch so modifiziert, dass Sie ein separates Zertifikat für Ihren Mailserver und das Kontrollfeld haben. Wenn Sie dieses Tutorial zuvor befolgt haben, könnte dieses Tutorial Ihre Einrichtung beeinträchtigen.
Dieses Tutorial verwendet Zertifikate, die von acme.sh ausgestellt wurden. Wenn Sie certbot verwenden, folgen Sie stattdessen diesem Tutorial: https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate-certbot.86372/
Hinweis für ISPConfig 3.2: ISPConfig 3.2 kann während der Installation automatisch ein gültiges Let’s Encrypt SSL-Zertifikat für den Server-Hostnamen erstellen, das auch für den Mailserver verwendet wird. Es ist nicht erforderlich, ein Let’s Encrypt SSL-Zertifikat manuell zu erstellen, wie hier für ISPConfig 3.2-Systeme beschrieben, es sei denn, Sie benötigen andere Domainnamen im SSL-Zertifikat neben dem Server-Hostnamen.
Voraussetzungen
- Ihr Server sollte gemäß dem Perfect Server-Tutorial für Ihr Betriebssystem installiert sein.
- Stellen Sie sicher, dass Sie als Root-Benutzer angemeldet sind.
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, damit sie auf Ihren Server verweisen. Diese sollten A (und eventuell AAAA) Einträge sein. Gehen Sie dann im ISPConfig-Interface zum Tab „Sites“.
Zertifikat ausstellen
Unter Sites klicken Sie auf „Neue Website hinzufügen“. Setzen Sie mail.example.com als Domain. Deaktivieren Sie Auto-Subdomain und aktivieren Sie das Kontrollkästchen für Let’s Encrypt.
Danach können Sie Ihre anderen Hostnamen als Alias-Domains hinzufügen, indem Sie zur Alias-Domain-Liste gehen und auf „Neue Alias-Domain hinzufügen“ klicken. Wählen Sie smtp.example.com als Domain und mail.example.com als übergeordnete Website. Deaktivieren Sie Auto-Subdomain und speichern Sie den neuen Eintrag. Wiederholen Sie dies für Ihre anderen Hostnamen.
Überprüfen Sie, ob das Zertifikat vorhanden ist. Sie können dies mit einem Tool wie https://www.sslshopper.com/ssl-checker.html tun.
Es sollte ungefähr so aussehen:

Wenn die Hostnamen aufgelistet sind und keine anderen Fehler vorliegen, können Sie fortfahren. Andernfalls überprüfen Sie die Fehler und beheben Sie diese, 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 /var/www/mail.example.com/ssl/mail.example.com-le.crt smtpd.cert
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.key smtpd.key
systemctl restart postfix
systemctl restart dovecotDas Zertifikat sollte jetzt für Ihren Postfix- und Dovecot-Server verwendet werden. Aber wir sind noch nicht fertig! Das Let’s Encrypt-Zertifikat erneuert sich alle 60 Tage, daher sollten wir den Prozess des Ersetzens des Zertifikats in Zukunft automatisieren, damit Sie es nicht vergessen.
Multiserver-Knoten ohne ISPConfig GUI
Wenn dies ein Knoten ohne GUI in einer ISPConfig-Multiserver-Umgebung ist, müssen Sie jetzt überprüfen, ob ISPConfig selbst ein SSL-Zertifikat hat. Führen Sie diesen Schritt nicht auf einer Einzelserver-Installation oder einem Server aus, der eine ISPConfig-GUI ausführt.
Sie können den Test mit den folgenden ls-Befehlen durchführen:
cd /usr/local/ispconfig/interface/ssl/
ls ispserver.crt
ls ispserver.keyDas Ergebnis sieht so aus, wenn bereits ein Zertifikat vorhanden ist:
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.crt
ispserver.crt
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.key
ispserver.keyWenn die beiden ls-Befehle nicht die Dateien ispserver.crt und ispserver.key zurückgeben, erstellen Sie sie als Symlinks zum Let’s Encrypt-Zertifikat wie folgt:
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.cer ispserver.crt
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.key ispserver.keyEin automatisches Erneuerungsskript einrichten
Öffnen Sie eine neue Skriptdatei:
nano /usr/local/bin/le_mailserver_restart.shFügen Sie Folgendes in diese Datei ein:
#!/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: Startet den Mailserver automatisch neu, wenn ein neues Let's Encrypt-Zertifikat ausgestellt wird.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecotMachen Sie das Skript ausführbar:
chmod +x /usr/local/bin/le_mailserver_restart.shUm dieses Skript bei der Erneuerung automatisch auszulösen, verwenden wir systemd.
Erstellen und öffnen Sie den neuen systemd-Dienst:
nano /etc/systemd/system/le-mailserver-restart.serviceFügen Sie Folgendes in diese Datei ein:
[Unit]
Description="Skript ausführen, um Postfix und Dovecot nach der Erneuerung des Zertifikats neu zu starten"
[Service]
ExecStart=/usr/local/bin/le_mailserver_restart.shSpeichern und schließen Sie diese Datei. Erstellen und öffnen Sie dann die neue systemd-Pfaddatei:
nano /etc/systemd/system/le-mailserver-restart.pathFügen Sie Folgendes in diese Datei ein und ersetzen Sie mail.example.com durch den Hostnamen, den Sie verwendet haben:
[Unit]
Description="Überwacht die Mailserver-Zertifikatdateien, um einen Neustart der E-Mail-Dienste auszulösen, nachdem die Zertifikate erneuert wurden"
[Path]
PathModified=/var/www/mail.example.com/ssl/
Unit=le-mailserver-restart.service
[Install]
WantedBy=multi-user.targetSpeichern und schließen Sie diese Datei. Starten Sie dann den Dienst und aktivieren Sie ihn, damit er beim Start ausgeführt wird:
systemctl start le-mailserver-restart.pathUnd aktivieren Sie ihn, damit er beim Start ausgeführt wird:
systemctl enable le-mailserver-restart.pathUnd das war’s!
Funktioniert nicht?
Ich hatte einmal ein Problem damit, weil Let’s Encrypt eine der Alias-Domains als Hauptdomain verwendet hat. Sie können die Hauptdomain im zuvor genannten SSL-Tool als „Common name“ finden oder den Inhalt von /root/acme.sh/ auflisten, um zu sehen, welche der (Alias-)Domains dort einen Ordner hat.
Wenn Sie weiterhin ein Problem haben, eröffnen Sie einen Thread im Forum, damit Ihnen andere helfen können.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.