MTA-STS mit Cloudflare DNS einrichten
Schritt-für-Schritt-Anleitung: DNS-Records im Cloudflare Dashboard anlegen, Policy-Datei über Cloudflare Pages (empfohlen) oder Cloudflare Worker hosten — mit automatischem SSL-Zertifikat, globalem CDN und vollständiger Verifizierung.
MTA-STS mit Cloudflare DNS und Pages einrichten
Cloudflare DNS mit Cloudflare Pages ist die eleganteste MTA-STS-Lösung: DNS-Records über das Cloudflare Dashboard, Policy-Hosting kostenlos über Pages mit automatischem SSL-Zertifikat und globalem CDN. Alternativ generiert ein Cloudflare Worker die Policy dynamisch. Entscheidend: MX-Records dürfen nicht über den Cloudflare-Proxy laufen.
MTA-STS (RFC 8461) erzwingt TLS-verschlüsselte E-Mail-Zustellung und verhindert STRIPTLS-Downgrade-Angriffe. Cloudflare ist ein reiner DNS-Anbieter — der eigentliche Mailserver wird von einem separaten Anbieter betrieben (z.B. Google Workspace, Microsoft 365, Postfix). Deshalb müssen die mx-Einträge in der Policy-Datei die MX-Hosts Ihres tatsächlichen Mail-Providers enthalten. Der Wolf-Agents Email Security Scanner vergleicht Policy-MX und DNS-MX zeichengenau: Er erkennt, wenn der Cloudflare-Proxy versehentlich für die mta-sts-Subdomain oder den MX-Record aktiviert ist (Orange Cloud), warnt vor nicht verknüpften Custom Domains in Pages (522/530-Fehler), prüft den Worker-Route-Pattern /.well-known/mta-sts.txt und deckt Mismatches zwischen den MX-Hosts des nachgelagerten Mailproviders und der Policy-Datei auf.
NIS2 Art. 21 Abs. 2 lit. h fordert Verschlüsselung nach dem Stand der Technik. Cloudflare Pages stellt eine kostenlose Infrastruktur bereit, um die MTA-STS-Policy-Datei mit gültigem TLS-Zertifikat zu hosten — ohne eigenen Server, ohne Wartungsaufwand. DSGVO Art. 32 fordert Verschlüsselung personenbezogener Daten bei der Übertragung — Cloudflare Pages liefert pro Auslieferung der Policy-Datei Zugriffslogs (Analytics-Engine, Logpush in S3/R2), die als TOM-Nachweis bei DSGVO-Audits dienen. Die BSI TR-03108 empfiehlt MTA-STS als Schutz vor STRIPTLS-Downgrade. Wolf-Agents empfiehlt MTA-STS mit mode: enforce als Mindeststandard für alle produktiven Domains.
DNS-Records im Cloudflare Dashboard anlegen
Legen Sie drei Records im Cloudflare Dashboard an: den _mta-sts TXT-Record, der MTA-STS aktiviert, den _smtp._tls TXT-Record für TLS-Reporting und einen CNAME-Record für die mta-sts Subdomain. Die id im MTA-STS-Record muss bei jeder Policy-Änderung aktualisiert werden — nutzen Sie das aktuelle Datum im Format YYYYMMDD. Cloudflare DNS propagiert Änderungen in unter 5 Minuten weltweit.
Proxy-Status — entscheidend für E-Mail
- mta-sts CNAME: Proxy AN (Orange Cloud) — Cloudflare liefert automatisch ein SSL-Zertifikat für die Subdomain aus. HTTPS ist damit ohne eigenes Zertifikat gewährleistet
- MX-Records: Proxy AUS (Graue Wolke, DNS only) — der Cloudflare-Proxy unterstützt kein SMTP. Wenn MX-Records über den Proxy laufen, können keine E-Mails zugestellt werden
- _mta-sts und _smtp._tls TXT-Records: Proxy-Status ist irrelevant (TXT-Records werden nie geproxied)
# MX-Records prüfen (abhängig von Ihrem Mailanbieter)
dig ihre-domain.de MX +short
# MTA-STS DNS-Record (Cloudflare Dashboard)
# Name: _mta-sts
# Typ: TXT
# Inhalt: v=STSv1; id=20260408
# TLS-RPT DNS-Record
# Name: _smtp._tls
# Typ: TXT
# Inhalt: v=TLSRPTv1; rua=mailto:tls-reports@ihre-domain.de
# CNAME für Policy-Subdomain (zeigt auf Pages)
# Name: mta-sts
# Typ: CNAME
# Ziel: ihr-projekt.pages.dev
# Proxy: AN (Orange Cloud)
# WICHTIG: MX-Records OHNE Proxy!
# Proxy-Status für MX-Records: DNS only (Graue Wolke) Policy-Datei erstellen
Die Policy-Datei definiert, welche MX-Hosts TLS-verschlüsselt erreichbar sein müssen. Da Cloudflare ein reiner DNS-Anbieter ist, hängen die mx-Einträge von Ihrem tatsächlichen Mailanbieter ab. Prüfen Sie Ihre MX-Records mit dig ihre-domain.de MX +short und tragen Sie die Hosts in die Policy ein. Beginnen Sie mit mode: testing und max_age: 86400 (24 Stunden) — nach erfolgreicher Verifikation wechseln Sie auf mode: enforce und max_age: 604800 (7 Tage).
version: STSv1
mode: testing
mx: mx1.ihre-domain.de
mx: mx2.ihre-domain.de
max_age: 86400 Cloudflare Pages deployen oder Worker einrichten
Sie haben zwei Optionen für das Policy-Hosting. Cloudflare Pages (Option A) ist die empfohlene Variante: kostenlos, automatisches SSL-Zertifikat, globales CDN und kein Code nötig. Ein Cloudflare Worker (Option B) eignet sich, wenn Sie die Policy dynamisch generieren möchten — etwa für mehrere Domains über ein einziges Script.
Option A: Cloudflare Pages (empfohlen)
- Projektstruktur anlegen: Erstellen Sie einen Ordner mit der Datei
.well-known/mta-sts.txtund optional einer_headers-Datei für Cache-Header - Pages-Projekt erstellen: Im Cloudflare Dashboard unter Workers & Pages ein neues Projekt erstellen und den Ordner per Direct Upload hochladen — kein Git-Repository nötig
- Custom Domain verknüpfen: Unter dem Pages-Projekt die Custom Domain
mta-sts.ihre-domain.dehinzufügen. Cloudflare erstellt automatisch den CNAME-Record und stellt ein SSL-Zertifikat aus - Deployment testen: Nach 1-2 Minuten ist die Policy unter
https://mta-sts.ihre-domain.de/.well-known/mta-sts.txterreichbar
mta-sts-policy/
.well-known/
mta-sts.txt # Policy-Datei
_headers # Optional: Cache-Header
_redirects # Optional: Weiterleitungen /.well-known/mta-sts.txt
Content-Type: text/plain
Cache-Control: public, max-age=3600 Option B: Cloudflare Worker (dynamisch)
- Worker erstellen: Im Cloudflare Dashboard unter Workers & Pages einen neuen Worker erstellen und den Code einfügen
- Custom Domain zuweisen: Unter dem Worker die Custom Domain
mta-sts.ihre-domain.deals Route konfigurieren - Vorteil: Die Policy wird bei jedem Abruf dynamisch generiert — ideal, wenn Sie MX-Hosts zentral für mehrere Domains verwalten möchten
// Cloudflare Worker für MTA-STS Policy
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === '/.well-known/mta-sts.txt') {
const policy = [
'version: STSv1',
'mode: testing',
'mx: mx1.ihre-domain.de',
'mx: mx2.ihre-domain.de',
'max_age: 86400'
].join('\n');
return new Response(policy, {
headers: {
'Content-Type': 'text/plain',
'Cache-Control': 'public, max-age=3600'
}
});
}
return new Response('Not Found', { status: 404 });
}
}; MTA-STS-Konfiguration verifizieren
Prüfen Sie alle drei Komponenten: DNS-Record, Policy-Datei und TLS-RPT-Record. Der Wolf-Agents Email Security Scanner validiert zusätzlich den MX-Abgleich — die mx-Einträge in der Policy müssen exakt mit Ihren DNS-MX-Records übereinstimmen. Beginnen Sie mit mode: testing und wechseln Sie nach erfolgreicher Verifikation und positiven TLS-RPT-Reports auf mode: enforce.
# Linux / macOS
dig _mta-sts.ihre-domain.de TXT +short
curl -s https://mta-sts.ihre-domain.de/.well-known/mta-sts.txt
dig _smtp._tls.ihre-domain.de TXT +short
# Windows (PowerShell)
Resolve-DnsName -Name _mta-sts.ihre-domain.de -Type TXT | Select-Object -ExpandProperty Strings
Invoke-WebRequest -Uri "https://mta-sts.ihre-domain.de/.well-known/mta-sts.txt" | Select-Object -ExpandProperty Content
Resolve-DnsName -Name _smtp._tls.ihre-domain.de -Type TXT | Select-Object -ExpandProperty Strings
# Erwartete Ausgaben:
# "v=STSv1; id=20260408"
# version: STSv1 / mode: testing / mx: ... / max_age: 86400
# "v=TLSRPTv1; rua=mailto:tls-reports@ihre-domain.de" Häufige Probleme bei Cloudflare MTA-STS
Die folgenden drei Probleme treten bei Cloudflare MTA-STS-Konfigurationen besonders häufig auf. Jedes einzelne kann dazu führen, dass E-Mails nicht zugestellt werden oder sendende Server die Policy ignorieren.
Proxy für MX-Records aktiviert — E-Mail-Zustellung bricht ab
Symptom: E-Mails werden nicht zugestellt. Sendende Server erhalten Timeout-Fehler beim Verbindungsaufbau zum MX-Host. dig ihre-domain.de MX +short liefert Cloudflare-IPs statt der tatsächlichen Mailserver-IPs.
Ursache: Der MX-Record oder der A-Record des MX-Hosts hat den Proxy-Status auf Orange Cloud (AN). Der Cloudflare-Proxy unterstützt ausschließlich HTTP/HTTPS — SMTP-Traffic (Port 25) wird vollständig blockiert.
Lösung: Im Cloudflare Dashboard den Proxy-Status für alle MX-relevanten Records auf DNS only (Graue Wolke) setzen. Prüfen Sie sowohl den MX-Record selbst als auch den A-Record, auf den der MX-Host verweist. Der Wolf-Agents Email Security Scanner erkennt geproxiede MX-Records automatisch.
Custom Domain für Pages nicht verknüpft
Symptom: curl https://mta-sts.ihre-domain.de/.well-known/mta-sts.txt liefert einen Cloudflare-Fehler (522 oder 530) oder eine Standardseite. Die Policy ist unter der .pages.dev-URL erreichbar, aber nicht unter der Custom Domain.
Ursache: Das Cloudflare Pages-Projekt wurde deployed, aber die Custom Domain mta-sts.ihre-domain.de wurde nicht im Pages-Projekt unter Custom Domains hinzugefügt. Ohne diese Verknüpfung kann Cloudflare eingehende Requests nicht dem Pages-Projekt zuordnen.
Lösung: Im Cloudflare Dashboard unter Workers & Pages das Projekt öffnen, Custom Domains aufrufen und mta-sts.ihre-domain.de hinzufügen. Cloudflare erstellt automatisch den CNAME-Record und das SSL-Zertifikat. Warten Sie 1-2 Minuten und prüfen Sie erneut mit curl.
Worker-Route falsch konfiguriert
Symptom: curl https://mta-sts.ihre-domain.de/.well-known/mta-sts.txt liefert Not Found oder die Standard-Cloudflare-Seite statt der Policy-Datei. Der Worker funktioniert lokal mit wrangler dev, aber nicht unter der Custom Domain.
Ursache: Die Worker-Route ist falsch konfiguriert — entweder fehlt der Wildcard-Pfad (mta-sts.ihre-domain.de/*), oder die Route ist einer anderen Zone zugeordnet. Alternativ wurde die Custom Domain nicht als Worker Custom Domain, sondern nur als Route konfiguriert.
Lösung: Verwenden Sie Custom Domains statt Routes für den Worker: Im Worker-Dashboard unter Settings die Custom Domain mta-sts.ihre-domain.de hinzufügen. Falls Sie Routes nutzen, stellen Sie sicher, dass das Pattern mta-sts.ihre-domain.de/* lautet und die korrekte Zone ausgewählt ist.
NIS2, BSI TR-03108 und DSGVO Art. 32: Cloudflare Pages als kostenlose MTA-STS-Infrastruktur
NIS2 Art. 21 Abs. 2 lit. h verlangt Maßnahmen zur Sicherung der Kommunikation nach dem Stand der Technik. Cloudflare Pages bietet eine kostenlose, wartungsfreie Infrastruktur für MTA-STS-Policy-Hosting: automatisches SSL-Zertifikat, globales CDN mit 99,99% Uptime und keine Serverkosten. Damit entfällt das häufigste Hindernis für MTA-STS — die Bereitstellung eines HTTPS-fähigen Webservers für die Policy-Datei. DSGVO Art. 32 fordert Verschlüsselung bei der Übertragung — Cloudflare Pages liefert Zugriffslogs zur Policy-Auslieferung (Logpush nach S3/R2 konfigurierbar), die als TOM-Nachweis dienen. Die BSI TR-03108 empfiehlt MTA-STS als Schutz gegen TLS-Downgrade-Angriffe. Der Wolf-Agents Email Security Scanner bewertet MTA-STS mit bis zu 15 Punkten (10 MTA-STS + 5 TLS-RPT) und zeigt Ihnen den aktuellen Stand Ihrer Konfiguration.
Hinweis für Mailserver-Betreiber: Wenn Sie hinter Cloudflare DNS einen eigenen ausgehenden Mailserver (Postfix, Exim) betreiben — etwa auf Hetzner Cloud oder einem Hyperscaler — prüfen Sie zusätzlich die Outbound-MTA-STS-Validierung mit postfix-mta-sts-resolver. Ihr Server muss MTA-STS-Policies anderer Domains beim Senden auswerten und TLS erzwingen, nicht nur beim Empfang. Details siehe MTA-STS für Postfix.
Cloudflare Pages vs. Workers — Entscheidungsbaum (Multimodal)
Cloudflare Inc. (San Francisco, Kalifornien, USA) bietet zwei Optionen für MTA-STS-Policy-Hosting: Cloudflare Pages (statisch, kostenlos, mit Auto-SSL) oder Cloudflare Workers (dynamisch generiert). Die Visualisierung zeigt den Entscheidungsbaum für die richtige Wahl.
Cloudflare DNS Pages-vs-Workers — Entscheidungsbaum für MTA-STS-Hosting
Multimodaler Decision-Tree mit drei Verzweigungen: 1. Statische Policy? Ja=Cloudflare Pages, Nein=Workers. 2. Bei Pages Custom Domain mta-sts verknüpft? 3. Bei Workers dynamische Policy nötig? Endknoten: Code-Snippet-Verweise. Empfehlung: Pages für 95% der Fälle. Konzern: Cloudflare Inc. San Francisco CA.
MTA-STS-Anleitung auch für:
Wie steht Ihre Domain bei MTA-STS?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 165 Prüfpunkte.