In diesem Artikel richten wir eine TLS-Verschlüsselung für unseren Postfix-Mailserver unter Debian 13 mit einem kostenlosen Let’s-Encrypt-Zertifikat ein. Dadurch können E-Mails verschlüsselt übertragen werden und Mailclients wie Outlook, Thunderbird oder Smartphones können den Server sicher über Port 587 verwenden.
Außerdem verbessert eine korrekte TLS-Konfiguration die Zustellbarkeit bei vielen Mailprovidern erheblich.
Was ist TLS?
TLS (Transport Layer Security) verschlüsselt die Verbindung zwischen:
- Mailclient und Mailserver
- Mailserver und anderen Mailservern
Dadurch können Zugangsdaten und E-Mails nicht einfach im Netzwerk mitgelesen werden.
Was ist Let’s Encrypt?
Let’s Encrypt ist eine kostenlose Zertifizierungsstelle (CA), die automatisch gültige TLS-Zertifikate ausstellt.
Die Zertifikate sind:
- kostenlos
- automatisch erneuerbar
- von allen gängigen Systemen vertrauenswürdig
Voraussetzungen
Folgende Voraussetzungen sollten erfüllt sein:
- Debian 13
- funktionierender Postfix-Mailserver
- öffentliche Domain
- DNS zeigt auf den Server
- Port 80 erreichbar
- Root-Zugriff
In diesem Beispiel verwenden wir:
host01.meine-domain.de
DNS prüfen
Damit Let’s Encrypt funktioniert, muss die Domain auf den Server zeigen.
A-Record prüfen
host01.meine-domain.de -> SERVER-IP
Prüfen mit:
dig mail.example.de
oder:
ping mail.example.de
Firewall prüfen
Let’s Encrypt muss den Server über HTTP auf Port 80 erreichen können.
Falls beispielsweise UFW verwendet wird:
ufw allow 80/tcp
Anschließend prüfen:
ufw status
Certbot installieren
Zunächst installieren wir Certbot.
apt update
apt install certbot -y
Zertifikat erstellen
Postfix kurz stoppen:
systemctl stop postfix
Nun das Zertifikat erstellen:
certbot certonly --standalone -d host01.meine-domain.de
Erklärung:
certonly→ nur Zertifikat erstellen--standalone→ eingebauten Webserver verwenden-d→ Domainname
Wenn alles erfolgreich war, erscheint eine Meldung wie:
Successfully received certificate
Speicherort der Zertifikate
Die Zertifikate befinden sich anschließend unter:
/etc/letsencrypt/live/host01.meine-domain.de/
Wichtige Dateien:
| Datei | Bedeutung |
|---|---|
| fullchain.pem | Zertifikat inklusive Zertifikatskette |
| privkey.pem | Privater Schlüssel |
TLS in Postfix konfigurieren
Nun konfigurieren wir Postfix für TLS.
Datei öffnen:
nano /etc/postfix/main.cf
Folgende Konfiguration ergänzen oder anpassen:
smtpd_tls_cert_file=/etc/letsencrypt/live/host01.meine-domain.de/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/host01.meine-domain.de/privkey.pem
smtpd_tls_security_level=may
smtp_tls_security_level=may
smtpd_tls_auth_only=yes
Erklärung der TLS-Konfiguration
smtpd_tls_cert_file
smtpd_tls_cert_file=/etc/letsencrypt/live/host01.meine-domain.de/fullchain.pem
Gibt das TLS-Zertifikat an, welches Postfix verwendet. Hier sollte immer die fullchain.pem verwendet werden.
smtpd_tls_key_file
smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.de/privkey.pem
Pfad zum privaten Schlüssel des Zertifikats. Dieser Schlüssel sollte niemals öffentlich zugänglich sein.
smtpd_tls_security_level
smtpd_tls_security_level=may
Postfix bietet STARTTLS an, erzwingt TLS aber nicht.
Das bedeutet:
- Verschlüsselung wird genutzt, wenn die Gegenstelle TLS unterstützt
- ältere Mailserver können trotzdem noch zustellen
Dies ist die empfohlene Einstellung für maximale Kompatibilität.
smtp_tls_security_level
smtp_tls_security_level=may
Legt fest, wie sich Postfix bei ausgehenden Verbindungen verhält.
Auch hier bedeutet may:
- TLS verwenden wenn möglich
- ansonsten unverschlüsselt senden
smtpd_tls_auth_only
smtpd_tls_auth_only=yes
SMTP-Authentifizierung wird nur über verschlüsselte Verbindungen erlaubt. Dadurch können Benutzername und Passwort nicht unverschlüsselt übertragen werden. Sehr wichtige Sicherheitseinstellung.
Optionale TLS-Logging- und Analysefunktionen
Die folgenden Einstellungen sind optional und nicht zwingend für den TLS-Betrieb erforderlich. Sie erweitern hauptsächlich die Protokollierung und fügen zusätzliche Informationen zu TLS-Verbindungen in Logs und Mailheader ein. Dies kann besonders bei der Fehlersuche und Analyse hilfreich sein.
smtpd_tls_loglevel=1
smtpd_tls_received_header=yes
smtp_tls_note_starttls_offer=yes
Submission-Port 587 aktivieren
Für Mailclients sollte Port 587 verwendet werden.
Datei öffnen:
nano /etc/postfix/master.cf
Folgende Sektion aktivieren oder ergänzen:
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
Erklärung der Submission-Konfiguration
smtpd_tls_security_level=encrypt
-o smtpd_tls_security_level=encrypt
Auf Port 587 wird TLS verpflichtend. Unverschlüsselte Verbindungen werden abgelehnt.
smtpd_sasl_auth_enable
-o smtpd_sasl_auth_enable=yes
Aktiviert SMTP-Authentifizierung.
Benötigt für:
- Thunderbird
- Outlook
- Smartphones
- andere Mailclients
smtpd_recipient_restrictions
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
Nur authentifizierte Benutzer dürfen E-Mails versenden. Dadurch wird verhindert, dass der Server als Open Relay missbraucht wird.
Postfix neu starten
Nach den Änderungen:
systemctl restart postfix
Status prüfen:
systemctl status postfix
TLS testen
STARTTLS auf Port 25 testen
openssl s_client -connect host01.meine-domain.de:25 -starttls smtp
Wichtige Punkte:
- gültiges Zertifikat
- keine Zertifikatsfehler
- richtige Domain
Submission-Port testen
openssl s_client -connect host01.meine-domain.de:587 -starttls smtp
Zertifikatserneuerung testen
Let’s Encrypt erneuert Zertifikate automatisch.
Testlauf:
certbot renew --dry-run
Wenn keine Fehler erscheinen, funktioniert die automatische Erneuerung korrekt.
Typische Fehler
Let’s Encrypt schlägt fehl
Häufige Ursachen:
- Port 80 blockiert
- Firewall blockiert HTTP
- DNS zeigt auf falsche IP
- anderer Dienst verwendet Port 80
Prüfen mit:
ss -tulpn | grep :80
Zertifikat wird nicht geladen
Ursachen:
- falscher Pfad
- Tippfehler
- Postfix nicht neugestartet
Prüfen:
postfix check
STARTTLS wird nicht angeboten
Prüfen:
postconf | grep tls
Abschließender Test
Zum Abschluss empfiehlt sich ein Test mit:
- mail-tester.com
- MXToolbox
Dadurch lässt sich schnell erkennen:
- ob TLS funktioniert
- ob Zertifikate korrekt geladen werden
- welche Verschlüsselung genutzt wird
Fazit
Mit Let’s Encrypt und Postfix lässt sich unter Debian 13 schnell eine sichere TLS-Verschlüsselung für den Mailserver einrichten.
Dadurch:
- werden Zugangsdaten geschützt
- verbessert sich die Zustellbarkeit
- erfüllen Mailclients moderne Sicherheitsstandards

