In dieser Anleitung erfahren Sie, wie Sie ein ACME SSL-Zertifikat auf Mailservern, insbesondere Postfix, Dovecot und optional Exim, mit kommerziellen Anbietern installieren, die ACME + EAB unterstützen. Wir verwenden acme.sh, um Ihr ACME-Konto zu registrieren, ein Zertifikat für Ihren Mail-Hostnamen auszustellen und dieses Zertifikat dann direkt in die TLS-Konfiguration Ihres Mailservers zu integrieren.

Diese Anleitung geht von einem Linux-basierten Mailserver und einer kommerziellen Zertifizierungsstelle aus, die eine ACME-Verzeichnis-URL zusammen mit EAB-Anmeldeinformationen (Schlüssel-ID + HMAC) bereitstellt. Da sich die E-Mail-Umgebungen der verschiedenen Distributionen und Hosting-Konfigurationen unterscheiden, sollten Sie diesen Leitfaden als eine klare, zuverlässige Vorlage betrachten, aber immer die Pfade, Servicenamen und TLS-Einstellungen Ihres eigenen Servers überprüfen, während Sie arbeiten.
Bevor Sie beginnen
Wenn Sie diese Grundlagen beherrschen, werden Sie es viel leichter haben:
- Ein Mail-Hostname, z. B. mail.example.com, mit einem A/AAAA-Eintrag, der auf Ihren Mailserver verweist
- Ihr MX-Eintrag, der auf diesen Hostnamen verweist (übliche Einstellung)
- Shell/SSH-Zugriff auf den Mailserver mit sudo oder root
- Ein kommerzielles CA-Konto, das eine ACME-Verzeichnis-URL(z. B. https://acme.yourca.com/v2/acme), eine EAB-Schlüssel-ID und einen EAB-HMAC-Schlüssel bereitstellt
- Mail-Stack: Postfix/Exim für SMTP und Dovecot für IMAP/POP3
Wir verwenden die DNS-01-Validierung, weil sie auch dann funktioniert, wenn Ihr Mailserver keine öffentliche Website betreibt und in der Produktion oft bevorzugt wird.
Schritt 1: Installieren Sie acme.sh auf dem Mail-Server
Sie installieren den ACME-Client direkt auf dem Mailserver, damit er Zertifikate erneuern und auf die Festplatte schreiben kann, wo Postfix/Dovecot/Exim sie lesen kann.
Auf dem Mailserver:
curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --version
Wenn Sie eine Versionsnummer sehen, ist der Client installiert und bereit. Wenn die Zeile source ~/.bashrc nicht funktioniert, melden Sie sich ab und wieder an und führen Sie acme.sh --version erneut aus.
Schritt 2: Registrieren Sie Ihr ACME-Konto (mit EAB)
Als nächstes müssen Sie Ihr ACME-Konto bei Ihrer kommerziellen Zertifizierungsstelle mit den EAB-Zugangsdaten aus deren Panel registrieren. acme.sh unterstützt EAB über --eab-kid und --eab-hmac-key.
Führen Sie dies auf dem Mailserver aus:
acme.sh --register-account \
--server https://acme.yourca.com/v2/acme \
--eab-kid YOUR_EAB_KID \
--eab-hmac-key YOUR_EAB_HMAC_KEY \
--accountemail [email protected]
Ersetzen:
https://acme.yourca.com/v2/acmemit der URL des ACME-Verzeichnisses Ihrer CAYOUR_EAB_KIDmit der Schlüssel-IDYOUR_EAB_HMAC_KEYmit dem HMAC-Schlüssel[email protected]mit Ihrer echten Admin-E-Mail für Ablaufbenachrichtigungen
Sie machen dies einmal pro Konto. Wenn der Befehl fehlschlägt, handelt es sich fast immer um einen Tippfehler in den URL- oder EAB-Werten.
Schritt 3: Ausstellen des Zertifikats über DNS-01
Jetzt fordern Sie ein Zertifikat für den Hostnamen an, mit dem sich Ihre Benutzer verbinden werden, z.B. mail.example.com (oder imap.example.com, smtp.example.com. Wählen Sie einfach das aus, das Sie tatsächlich in den Client-Konfigurationen verwenden).
Das Zertifikat ausstellen (manueller DNS)
Laufen:
acme.sh --issue \
-d mail.example.com \
--dns dns_manual \
--server https://acme.yourca.com/v2/acme
--dns dns_manual sagt acme.sh, dass Sie die TXT-Einträge manuell in Ihrem DNS-Panel hinzufügen.
Der Client gibt dann etwas aus wie:
Please add a TXT record:
_acme-challenge.mail.example.com → some-long-token-value
Fügen Sie den TXT-Datensatz hinzu
Erstellen Sie im Panel Ihres DNS-Anbieters einen TXT-Eintrag:
- Name:
_acme-challenge.mail.example.com - Wert: das Token, das von
acme.sh
Warten Sie ein paar Minuten, bis sich DNS verbreitet hat, und überprüfen Sie dann mit:
dig TXT _acme-challenge.mail.example.com +short
Wenn Sie das Token dort sehen, führen Sie den Befehl acme.sh --issue erneut aus, um die Validierung abzuschließen. Wenn dies erfolgreich war, speichert acme.sh Ihre Dateien unter ~/.acme.sh/mail.example.com/.
In diesem Verzeichnis finden Sie mindestens:
- fullchain.cer – Zertifikat plus Zwischenkette
- mail.example.com.key – privater Schlüssel
- ca.cer – CA-Zertifikate (falls Ihre CA sie separat anbietet)
Diese werden wir in den nächsten Schritten verwenden.
Schritt 4: Konfigurieren Sie Postfix für die Verwendung des ACME-Zertifikats (SMTP)
Postfix muss wissen, wo sich Ihr neues Zertifikat und Ihr Schlüssel befinden. TLS in Postfix wird durch Optionen wie smtpd_tls_cert_file und smtpd_tls_key_file gesteuert.
Kopieren Sie die Dateien zunächst an einen stabilen Ort, zum Beispiel:
sudo mkdir -p /etc/ssl/mail
sudo cp ~/.acme.sh/mail.example.com/fullchain.cer /etc/ssl/mail/mail-fullchain.cer
sudo cp ~/.acme.sh/mail.example.com/mail.example.com.key /etc/ssl/mail/mail.key
sudo chown root:root /etc/ssl/mail/*
sudo chmod 600 /etc/ssl/mail/mail.key
Dann weisen Sie Postfix an, diese zu verwenden:
sudo postconf -e 'smtpd_use_tls = yes'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/mail/mail-fullchain.cer'
sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/mail/mail.key'
sudo postconf -e 'smtp_tls_security_level = may'
smtpd_*Einstellungen zur Kontrolle des Posteingangs (Clients, die Ihnen Post schicken)smtp_*Einstellungen für ausgehende Post (Ihr Server sendet Post an andere)
Wenden Sie die Änderungen an:
sudo systemctl restart postfix
Wenn Ihre Distro noch service verwendet, passen Sie den Befehl entsprechend an.
Schritt 5: Konfigurieren Sie Dovecot für die Verwendung des ACME-Zertifikats (IMAP/POP3)
Dovecot verwaltet IMAP und POP3. Sie konfigurieren TLS, indem Sie ssl_cert und ssl_key auf die gleichen Dateien verweisen, die wir gerade vorbereitet haben.
Öffnen Sie die SSL-Konfiguration von Dovecot:
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Aktualisieren Sie diese Zeilen (oder fügen Sie sie hinzu):
ssl = yes
ssl_cert = </etc/ssl/mail/mail-fullchain.cer
ssl_key = </etc/ssl/mail/mail.key
Speichern Sie die Datei und laden Sie Dovecot neu:
sudo systemctl restart dovecot
Jetzt wird IMAP/POP3 über TLS das gleiche kommerzielle ACME-Zertifikat vorlegen.
Optional: Verwenden Sie dasselbe Zertifikat in Exim
Wenn Sie anstelle von Postfix Exim als Mailserver verwenden, ist die Integration ähnlich. Exim verwendet die Optionen tls_certificate und tls_privatekey für TLS.
In Ihrer Exim-Konfiguration (der Pfad hängt von der Distribution ab, oft /etc/exim4/exim4.conf.template oder split config unter /etc/exim4/conf.d/) setzen Sie:
tls_certificate = /etc/ssl/mail/mail-fullchain.cer
tls_privatekey = /etc/ssl/mail/mail.key
Laden Sie dann Exim neu:
sudo systemctl restart exim4
Prüfen Sie die Dokumentation Ihres Distributionspakets, falls der Name des Dienstes etwas anders lautet.
Schritt 6: Testen Sie Ihr Mail-TLS
Sie können von jedem anderen Rechner aus testen, auf dem OpenSSL installiert ist.
SMTP testen (Postfix oder Exim)
openssl s_client -starttls smtp -connect mail.example.com:587 -showcerts
IMAP testen (Dovecot)
openssl s_client -starttls imap -connect mail.example.com:143 -showcerts
Wenn die Ausgabe Ihre kommerzielle CA anzeigt und der Hostname übereinstimmt, ist alles in Ordnung.
Schritt 7: Erneuerung und Nachladen automatisiert halten
acme.sh installiert bereits einen Cron-Job, der täglich auf Erneuerungen prüft. Wenn Ihr Zertifikat demnächst abläuft, wird es automatisch erneuert und die Dateien in ~/.acme.sh/mail.example.com/ aktualisiert.
Um Postfix/Dovecot/Exim dazu zu bringen, immer die neueste Version zu verwenden, haben Sie zwei Möglichkeiten:
- Verweisen Sie die Konfigurationen direkt auf die Dateien in ~/.acme.sh/mail.example.com/
(z.B. smtpd_tls_cert_file = /root/.acme.sh/mail.example.com/fullchain.cer) und stellen Sie sicher, dass nur root sie lesen kann. - Schreiben Sie ein kleines Deployment-Skript, das die erneuerten Dateien nach
/etc/ssl/mail/kopiert und den Server neu startet oder neu lädt.
Beispiel für ein Skript:
#!/usr/bin/env bash
DOMAIN="mail.example.com"
SRC="$HOME/.acme.sh/$DOMAIN"
DEST="/etc/ssl/mail"
sudo cp "$SRC/fullchain.cer" "$DEST/mail-fullchain.cer"
sudo cp "$SRC/$DOMAIN.key" "$DEST/mail.key"
sudo chown root:root "$DEST/"*
sudo chmod 600 "$DEST/mail.key"
sudo systemctl restart postfix dovecot
Dieses Skript kopiert das neu ausgestellte ACME-Zertifikat und den privaten Schlüssel in das Mail-SSL-Verzeichnis Ihres Servers, legt die korrekten Eigentümer und Berechtigungen fest und startet dann Postfix und Dovecot neu, so dass diese sofort mit der Verwendung des aktualisierten Zertifikats beginnen. Verwenden Sie Ihre Anmeldedaten anstelle der Platzhalter.
Dann verbinden Sie es mit acme.sh:
acme.sh --install-cert -d mail.example.com \
--key-file ~/.acme.sh/mail.example.com/mail.example.com.key \
--fullchain-file ~/.acme.sh/mail.example.com/fullchain.cer \
--reloadcmd "/path/to/your/deploy-script.sh"
Von hier an erfolgt die Verlängerung automatisch.
Allgemeine Fragen & Fehlerbehebung
Wenn Sie dies zum ersten Mal tun, können ein paar Probleme auftreten. Hier erfahren Sie, wie Sie diese schnell lösen können.
Warum schlägt die ACME-Validierung mit „unautorisiert“ oder „ungültige Antwort“ fehl?
Dies geschieht, wenn die CA Ihren DNS-TXT-Eintrag nicht verifizieren kann. Prüfen Sie das:
- Der TXT-Datensatz lautet genau
_acme-challenge.mail.example.com - Das Token enthält keine zusätzlichen Anführungszeichen oder Leerzeichen
- DNS hat sich verbreitet (
dig TXT _acme-challenge.mail.example.com +short) - Sie haben mail.example.com nicht mit example.com verwechselt.
Wenn Sie sich nicht sicher sind, löschen Sie den TXT-Datensatz, führen Sie acme.sh --issue erneut aus und geben Sie den genauen Wert ein, den ACME Ihnen nennt.
Warum erhalte ich „accountDoesNotExist“ oder EAB-bezogene Fehler?
Diese werden angezeigt, wenn die Registrierung Ihres ACME-Kontos nicht mit den EAB-Zugangsdaten Ihrer CA übereinstimmt.
Fix by:
- Erneute Überprüfung der URL des ACME-Verzeichnisses (Produktion vs. Staging)
- Sicherstellen, dass Schlüssel-ID und HMAC exakt kopiert werden, ohne versteckte Leerzeichen
- Wiederholen Sie den Registrierungsbefehl einmal mit den richtigen Werten
Kommerzielle CAs lehnen jede EAB-Registrierung ab, die nicht mit dem von ihnen ausgegebenen Profil übereinstimmt.
Warum wird bei SMTP/IMAP immer noch das alte Zertifikat angezeigt?
Das bedeutet, dass der Dienst das neue Zertifikat nicht neu geladen hat oder es von einem anderen Pfad liest. Prüfen Sie:
- TLS-Pfade in Postfix/Dovecot/Exim stimmen mit den tatsächlichen Dateien überein
- Sie haben den richtigen Dienst neu gestartet (
systemctl restart postfix dovecot exim4) - Keine zweite Instanz, kein Container und kein Proxy bedient das alte Zertifikat
Sie können das Live-Zertifikat mit verifizieren:
openssl s_client -connect mail.example.com:465 -servername mail.example.com
Letzte Worte
Mit dieser Einrichtung präsentiert Ihr Mailserver den SMTP- und IMAP/POP3-Clients ein echtes kommerzielles ACME-Zertifikat, während acme.sh im Hintergrund die Erneuerung übernimmt. Sie behalten die volle Kontrolle über die Zertifikatskette und die Dateinamen, Ihre Benutzer sehen keine Sicherheitswarnungen mehr und Sie müssen sich nicht alle paar Monate einloggen, um neue Dateien von Hand hochzuladen.
Wenn Sie das einmal gemacht haben, können Sie dasselbe Muster für andere Hostnamen, sekundäre MX-Server oder zusätzliche Mailstacks mit demselben ACME-Konto und -Prozess wiederholen.
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

