In diesem Tutorial lernen Sie, wie Sie ein SSL/TLS-Zertifikat auf Postfix installieren, dem beliebten Linux-Mail-Transfer-Agent.
Wir haben außerdem ein Video aufgenommen, das Sie durch den gesamten Prozess führt. Schauen Sie es sich unten an, oder lesen Sie weiter für die Textversion.
CSR-Code auf Postfix erstellen
Wenn Sie bereits Ihren CSR-Code erstellt haben und nur die Installationsschritte benötigen, springen Sie direkt zu SSL-Zertifikat auf Postfix installieren.
Um ein SSL-Zertifikat von einer vertrauenswürdigen CA (Certificate Authority) zu erhalten, müssen Sie einen CSR (Certificate Signing Request) einreichen. Ein CSR ist ein Block aus codiertem Text, der Ihre Kontakt- und Organisationsdaten enthält. Sie haben zwei Möglichkeiten:
- Verwenden Sie unseren CSR-Generator, um den CSR automatisch zu erstellen.
- Folgen Sie unserem Schritt-für-Schritt-Tutorial zum Erstellen eines CSR in Postfix.
Öffnen Sie während des Bestellvorgangs bei Ihrem SSL-Anbieter die CSR-Datei in einem beliebigen Text-Editor und kopieren Sie den gesamten Block, einschließlich der Zeilen —–BEGIN CERTIFICATE REQUEST—– und —–END CERTIFICATE REQUEST—–, in das entsprechende Feld. Sobald die CA Ihre Anfrage validiert und das Zertifikat ausstellt, fahren Sie mit der Installation unten fort.
SSL-Zertifikat auf Postfix installieren
Nachdem die CA Ihre Anfrage validiert und die Zertifikatsdateien an Ihr Postfach gesendet hat, können Sie mit der Installation beginnen.
Schritt 1: Bereiten Sie Ihre SSL-Dateien vor
Postfix verwendet SSL/TLS-Zertifikate im X.509-Format. Für eine korrekte Installation werden drei Dateien benötigt:
- Ihr privater Schlüssel, der zusammen mit dem CSR auf Ihrem Server erstellt wurde (zum Beispiel privkey.key).
- Ihr primäres SSL-Zertifikat, die Datei im ZIP-Archiv, das Ihnen die CA per E-Mail zugesandt hat. In dieser Anleitung nennen wir sie server.crt.
- Das/die Zwischenzertifikat(e), das CA-Bundle aus demselben ZIP-Archiv. Wir nennen es intermediate.pem.
Sie können alle drei Dateien in einem einzigen Verzeichnis aufbewahren, zum Beispiel /etc/postfix/. Stellen Sie sicher, dass der private Schlüssel nur für root lesbar ist:
sudo chmod 600 /etc/postfix/privkey.key
Schritt 2: Erstellen Sie die Zertifikatskette
Wie Sie die Dateien zusammenstellen, hängt von Ihrer Postfix-Version ab. Prüfen Sie sie zunächst:
postconf mail_version
Empfohlen (Postfix 3.4 und neuer)
Erstellen Sie eine Kettendatei, die den privaten Schlüssel, das Serverzertifikat und die Zwischenzertifikat(e) enthält, genau in dieser Reihenfolge:
cat /path/to/privkey.key /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/rsachain.pem
Diese moderne Methode vermeidet Probleme beim Zertifikatswechsel und funktioniert einwandfrei mit der Postfix-Direktive smtpd_tls_chain_files. Schützen Sie die Kettendatei auf die gleiche Weise wie den Schlüssel, da sie Ihren privaten Schlüssel enthält:
sudo chmod 600 /etc/postfix/rsachain.pem
Alternative (alle Postfix-Versionen)
Wenn Sie eine Postfix-Version älter als 3.4 verwenden, halten Sie den Schlüssel getrennt und kombinieren Sie nur das Serverzertifikat mit dem/den Zwischenzertifikat(en):
cat /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/server.pem
Sie werden dieses Bundle und den privaten Schlüssel in der Konfiguration unten separat referenzieren.
Schritt 3: Postfix konfigurieren
Öffnen Sie die Hauptkonfigurationsdatei /etc/postfix/main.cf und wählen Sie den Stil, der zu Ihrer Konfiguration passt.
Option A: Postfix 3.4 oder neuer (empfohlen). Verweisen Sie Postfix auf die von Ihnen erstellte einzelne Kettendatei:
smtpd_tls_chain_files = /etc/postfix/rsachain.pem
smtpd_tls_security_level = may
Option B: veraltet (Postfix älter als 3.4). Referenzieren Sie das Zertifikatsbundle und den Schlüssel getrennt:
smtpd_tls_cert_file = /etc/postfix/server.pem
smtpd_tls_key_file = /etc/postfix/privkey.key
smtpd_tls_security_level = may
Ein paar Hinweise zu diesen Direktiven:
- smtpd_tls_security_level = may aktiviert opportunistisches TLS für eingehende E-Mails auf Port 25. Dies ist die richtige Einstellung für einen öffentlichen MX-Server: Er kündigt STARTTLS bei Absendern an, die es unterstützen, akzeptiert aber weiterhin unverschlüsselte Verbindungen von denjenigen, die es nicht tun. Setzen Sie es auf einem öffentlichen MX nicht auf encrypt, da dies legitime E-Mails von Absendern ohne Verschlüsselungsunterstützung ablehnen würde. (Der alte Schalter smtpd_use_tls = yes ist veraltet; smtpd_tls_security_level ersetzt ihn.)
- Verwenden Sie ein Zertifikat mit vollständiger Kette (Ihr Zertifikat plus die Zwischenzertifikate), egal ob Sie es über smtpd_tls_chain_files (Option A) oder smtpd_tls_cert_file (Option B) bereitstellen. Wird nur das Blattzertifikat bereitgestellt, führt dies auf der Empfängerseite zu Fehlern bei der Kettenvalidierung.
- Moderne Postfix-Versionen deaktivieren standardmäßig bereits SSLv2, SSLv3 und schwache Verschlüsselungsalgorithmen, sodass Sie für eingehenden Datenverkehr auf Port 25 keine zusätzlichen Ausschlusslisten benötigen.
Den Submission-Dienst absichern (Port 587)
Wenn Ihre eigenen Benutzer E-Mails über Postfix versenden (über Outlook, Thunderbird, Apple Mail usw.), verbinden sie sich über den Submission-Port 587, nicht über Port 25, der für die Zustellung von Server zu Server reserviert ist. Da diesen Port nur Ihre authentifizierten Benutzer verwenden, können Sie hier bedenkenlos strengere Regeln durchsetzen: TLS erzwingen und ein Mindestprotokoll von TLS 1.2 festlegen.
Öffnen Sie /etc/postfix/master.cf, stellen Sie sicher, dass der submission-Dienst aktiviert ist, und fügen Sie die folgenden Overrides hinzu:
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_mandatory_protocols=>=TLSv1.2
Ein paar Details, über die man leicht stolpert:
- smtpd_tls_mandatory_protocols greift nur, wenn das Sicherheitsniveau encrypt ist (obligatorisches TLS), was hier auf Port 587 genau der Fall ist. Für opportunistisches TLS auf Port 25 (Sicherheitsniveau may) wäre stattdessen smtpd_tls_protocols die entsprechende Einstellung, aber bei einem öffentlichen MX belässt man das in der Regel bei den Standardwerten von Postfix, um ältere Absender nicht abzuweisen.
- Die kompakte Syntax >=TLSv1.2 erfordert Postfix 3.6 oder neuer und darf kein Leerzeichen zwischen >= und der Version enthalten. Bei Postfix 3.4 oder 3.5 verwenden Sie stattdessen die Ausschlussform: smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1.
- In master.cf gibt es kein Leerzeichen um das = in einem -o-Override (zum Beispiel -o smtpd_tls_security_level=encrypt), während Sie in main.cf key = value mit Leerzeichen schreiben.
Optional: implizites TLS auf Port 465. Viele moderne Clients bevorzugen Port 465 (SMTPS / „submissions“), der die gesamte Sitzung von Anfang an in TLS einbettet. RFC 8314 befürwortet dies neben Port 587. Um dies anzubieten, aktivieren Sie den smtps-Dienst in master.cf mit Wrapper-Modus:
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
Schritt 4: Postfix neu laden
Vor dem Neuladen ist es ratsam, die Konfiguration auf Syntaxfehler zu überprüfen:
sudo postfix check
Wenn dies nichts zurückgibt, wenden Sie die Änderungen an. Ein Neuladen liest die Konfiguration neu ein, ohne aktive Verbindungen zu unterbrechen:
sudo systemctl reload postfix
Auf Systemen ohne systemd lautet der entsprechende Befehl:
sudo postfix reload
Schritt 5: Zertifikat überprüfen
Bestätigen Sie mit OpenSSL, dass Postfix das richtige Zertifikat und die richtige Kette bereitstellt. Ersetzen Sie yourdomain.com durch den Hostnamen Ihres Mailservers:
openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null
| openssl x509 -noout -issuer -subject -dates
Die Ausgabe sollte den Betreff Ihres Serverzertifikats, dessen Aussteller (die CA) und die Gültigkeitsdaten anzeigen. Um stattdessen den Submission-Dienst zu testen, ändern Sie den Port auf 587 (auch dieser verwendet STARTTLS), oder für den impliziten TLS-Port 465, lassen Sie -starttls smtp weg und verbinden Sie sich direkt mit Port 465. Herzlichen Glückwunsch, Sie haben erfolgreich ein SSL-Zertifikat auf Postfix installiert.
Testen Sie Ihre SSL-Installation
Nach der Installation des Zertifikats ist es ratsam, Ihre Konfiguration auf Fehler oder Schwachstellen zu überprüfen. Unser SSL Checker liefert Ihnen sofortige Berichte zu jedem Aspekt Ihres Zertifikats und dessen Einrichtung, damit Sie bestätigen können, dass die Kette vollständig ist und die Protokolle korrekt konfiguriert sind.
Wo kann man das beste SSL-Zertifikat für Postfix kaufen?
Sie sind hier genau richtig. Bei SSL Dragon bieten wir eines der breitesten Sortimente an SSL-Produkten zu einigen der niedrigsten Preise auf dem Markt an, und alle unsere Zertifikate sind mit dem Postfix-Mail-Transfer-Agent kompatibel.
Sie sind sich nicht sicher, welches Zertifikat Sie wählen sollen? Unser SSL Wizard macht es schnell und einfach, das richtige Produkt für Ihren Mailserver zu finden.
Häufig gestellte Fragen
TLS wird in /etc/postfix/main.cf konfiguriert. Bei Postfix 3.4 und neuer ist die empfohlene Direktive smtpd_tls_chain_files, die auf eine einzelne PEM-Datei verweist, die den privaten Schlüssel, das Serverzertifikat und die Zwischenzertifikate enthält. Bei älteren Versionen legen Sie stattdessen smtpd_tls_cert_file (ein Zertifikat mit vollständiger Kette) und smtpd_tls_key_file (den privaten Schlüssel) separat fest. Dienstspezifische Overrides für die Ports 587 und 465 befinden sich in /etc/postfix/master.cf.
Für smtpd_tls_chain_files lautet die Reihenfolge: zuerst der private Schlüssel, dann das Server- (Blatt-)Zertifikat, dann das/die Zwischenzertifikat(e):cat privkey.key server.crt intermediate.pem > /etc/postfix/rsachain.pem
Wenn die Reihenfolge falsch ist, kann Postfix die Kette nicht laden. Fügen Sie nicht das Root-CA-Zertifikat hinzu; Clients vertrauen diesem bereits.
Verwenden Sie may (opportunistisches TLS) für eingehende E-Mails auf Port 25. Ein öffentlicher MX muss E-Mails von Absendern akzeptieren, die kein TLS unterstützen, und encrypt würde diese ablehnen, was zu verlorenen E-Mails führt. Reservieren Sie encrypt (obligatorisches TLS) für den authentifizierten Submission-Dienst auf Port 587, mit dem sich nur Ihre eigenen Benutzer verbinden.
Für Änderungen an Zertifikaten und TLS reicht ein Neuladen aus; führen Sie sudo systemctl reload postfix aus (oder sudo postfix reload). Das Neuladen liest die Konfiguration neu ein, ohne aktive Verbindungen zu unterbrechen. Führen Sie zuerst sudo postfix check aus, um Syntaxfehler zu erkennen, bevor sie wirksam werden.
Verbinden Sie sich mit OpenSSL und lesen Sie das Zertifikat, das Postfix über STARTTLS bereitstellt:openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null | openssl x509 -noout -issuer -subject -dates
Dies gibt den Betreff, den Aussteller und die Gültigkeitsdaten des Zertifikats aus. Sie können auch mit unseren SSL-Tools einen vollständigen Scan durchführen, um zu bestätigen, dass die Kette vollständig ist.
Fazit
Die Installation eines SSL-Zertifikats auf Postfix läuft darauf hinaus, eine PEM-Datei mit vollständiger Kette zu erstellen, die main.cf mit smtpd_tls_chain_files (oder dem veralteten Paar smtpd_tls_cert_file / smtpd_tls_key_file) darauf zu verweisen, smtpd_tls_security_level = may für eingehende E-Mails festzulegen, den Submission-Dienst auf Port 587 abzusichern, die Konfiguration mit sudo postfix check zu überprüfen und Postfix neu zu laden.
Benötigen Sie zunächst ein Zertifikat? Durchsuchen Sie unsere SSL-Zertifikate.
Sparen Sie 10% auf SSL-Zertifikate, wenn Sie noch heute bestellen!
Schnelle Ausstellung, starke Verschlüsselung, 99,99% Browser-Vertrauen, engagierter Support und 25-tägige Geld-zurück-Garantie. Gutscheincode: SAVE10


