Policy-File hosten
Auf https://mta-sts.<domain>/.well-known/mta-sts.txt ein Plain-Text-File ablegen. Mindest-Inhalt: version, mode, mx-Liste, max_age.
version: STSv1
mode: testing
mx: mx1.example.com
mx: mx2.example.com
max_age: 604800
Werkzeug
Prüft Ihren _mta-sts-DNS-Record UND das Policy-File unter mta-sts.<domain> in einem Durchgang.
?domain=… funktioniert auch.
—
——
—
—
MTA-STS (SMTP Mail Transfer Agent Strict Transport Security) erzwingt verschlüsselte SMTP-Verbindungen zwischen Mailservern. Ohne MTA-STS handelt SMTP zwar oft schon TLS aus (Opportunistic TLS), kann aber durch einen Man-in-the-Middle-Angriff problemlos auf Klartext heruntergedowngradet werden — Empfänger ziehen sich dann achselzuckend ohne TLS zurück. MTA-STS schließt genau diese Lücke.
Das Setup besteht aus zwei Teilen. Erstens ein TXT-Record unter _mta-sts.<domain> mit der ID der aktuellen Policy. Zweitens das Policy-File auf https://mta-sts.<domain>/.well-known/mta-sts.txt mit drei Pflicht-Feldern: version, mode (none, testing, enforce), mx-Liste und max_age.
Sendende Server cachen das Policy-File entsprechend max_age und erzwingen TLS dann strikt. Im testing-Modus werden Verstöße nur via TLS-RPT gemeldet; im enforce-Modus wird die Mail nicht zugestellt, wenn TLS nicht möglich ist. Genau dieser Schritt von testing auf enforce ist die wichtige Entscheidung.
TXT-Record verspricht eine Policy, die unter der erwarteten URL nicht existiert. Sendende Server interpretieren das als Konfigurationsfehler und ziehen sich auf Opportunistic-TLS zurück.
testing seit Monaten — nie auf enforceTesting meldet nur via TLS-RPT, schaltet aber nichts hart durch. Wer die Policy nie auf enforce umstellt, hat Aufwand ohne Wirkung.
Spec verlangt https://mta-sts.…, valides Zertifikat, kein Selbstsigniert. Bei HTTP-Only oder Cert-Fehler ignorieren Empfänger die Policy.
mx-Liste in Policy stimmt nicht mit DNS übereinDie im Policy-File aufgelisteten MX-Hosts müssen mit den tatsächlichen MX-Records übereinstimmen. Abweichung → sendende Server lehnen ab, Mails bleiben hängen.
max_age zu niedrig (< 86400)RFC 8461 empfiehlt mindestens 86400 (1 Tag), eher 604800 (1 Woche). Niedrige Werte zwingen Empfänger zu ständigem Re-Fetch, Sicherheitsgewinn ist gering.
id-Wert in DNS nicht aktualisiertNach Policy-Änderung muss die id im TXT-Record neu gesetzt werden, sonst nutzen Empfänger ihre gecachte Version weiter — die Korrektur greift nicht.
Auf https://mta-sts.<domain>/.well-known/mta-sts.txt ein Plain-Text-File ablegen. Mindest-Inhalt: version, mode, mx-Liste, max_age.
version: STSv1
mode: testing
mx: mx1.example.com
mx: mx2.example.com
max_age: 604800
Unter _mta-sts.<domain> einen TXT-Record mit der id der Policy. Format: yyyymmdd + Suffix. Bei jeder Policy-Änderung muss die id neu gesetzt werden.
_mta-sts IN TXT "v=STSv1; id=20240601000000Z"
Parallel TLS-RPT einrichten (_smtp._tls.<domain>). Nach 2–4 Wochen ohne Failure-Reports kann der Modus auf enforce wechseln.
Policy-File auf mode: enforce setzen, id aktualisieren. Ab jetzt blockieren sendende Server bei TLS-Fehlern — Mails kommen nur über verschlüsselte Verbindungen durch.
Der vollständige SelfCheck testet zusätzlich SPF/DKIM/DMARC, BIMI, MTA-STS, TLS-RPT, DNSSEC und MX in einem Durchgang.
Vollständigen SelfCheck starten →testing und enforce?max_age abläuft. Erst danach wird wieder unverschlüsselt zugestellt. Trotzdem ist ein Ausfall ein Risiko — das Policy-File hochverfügbar hosten.https://mta-sts.<domain>/.well-known/mta-sts.txt erreichbar machen. Plain Text, gleiche TLS-Anforderungen wie jede HTTPS-Seite.