So funktioniert’s
CAA (RFC 8659) ist ein eigener DNS-Record-Typ. Ein Eintrag wie 0 issue "letsencrypt.org" erlaubt nur Let's Encrypt die Ausstellung, mehrere issue-Einträge erlauben mehrere CAs. Mit issuewild regelst du Wildcard-Zertifikate getrennt, iodef nennt eine Adresse wie mailto:security@example.com, an die CAs abgelehnte Anträge melden können.
Seit September 2017 müssen öffentliche Zertifizierungsstellen den CAA-Record vor jeder Ausstellung prüfen. Sie suchen ihn ab dem beantragten Namen aufwärts: Für shop.example.com fragen sie zuerst dort, dann bei example.com, und der erste gefundene Satz gilt. Ohne CAA-Record darf jede CA ausstellen.
Das Flag 128 markiert einen Eintrag als kritisch: Kennt die CA dessen Tag nicht, muss sie ablehnen. Erweiterungen wie accounturi und validationmethods (RFC 8657) binden die Ausstellung zusätzlich an ein bestimmtes ACME-Konto oder Prüfverfahren, sofern die CA sie unterstützt.
Warum gefährlich
Ohne CAA-Record kann jede öffentliche CA ein Zertifikat für deine Domain ausstellen, sobald jemand die Domainprüfung besteht, etwa nach einer DNS-Übernahme oder über eine verwaiste Subdomain. CAA engt den Kreis auf die Anbieter ein, die du tatsächlich nutzt.
Häufiger ist der umgekehrte Fehler: Der Record erlaubt nur die alte CA, während Hoster oder CDN längst eine andere nutzen. Das aktuelle Zertifikat läuft weiter, aber die nächste automatische Verlängerung scheitert still, und Wochen später steht die Website mit abgelaufenem Zertifikat da.
So vermeidest du es
- Alle CAs ermitteln, die für die Domain und ihre Subdomains ausstellen (Hoster, CDN, Mailanbieter), etwa über die Certificate-Transparency-Logs, und für jede einen issue-Eintrag setzen.
- Für Wildcard-Zertifikate einen passenden issuewild-Eintrag ergänzen oder bewusst issuewild ";" setzen, wenn keine Wildcards ausgestellt werden sollen.
- Einen iodef-Eintrag mit einer Adresse hinzufügen, die jemand liest.
- Vor jedem Wechsel des Zertifikatsanbieters oder CDNs zuerst den CAA-Record erweitern und erst dann umstellen.
- Keine unbekannten Tags mit Flag 128 verwenden und Erweiterungen wie accounturi nur nutzen, wenn die CA sie unterstützt.
So erkennt DomainWarn es
Der Check CAA sucht den wirksamen CAA-Satz nach den Regeln von RFC 8659, auch für Elternnamen und Wildcards, und vergleicht ihn mit der Zertifizierungsstelle des aktuellen Zertifikats auf Port 443; rund 30 CAs sind ihm bekannt. Sperrt der Record die genutzte CA aus, eröffnet DomainWarn nach zwei Läufen den Incident „CAA blockiert die genutzte CA“, weil die nächste Verlängerung scheitern würde. Unlesbare Records und unbekannte Tags mit Critical-Flag führen zu „CAA-Record fehlerhaft“.
Ein fehlender CAA-Record, ein Record ohne issue- oder issuewild-Eintrag und ein fehlender iodef-Eintrag sind Hinweise. Angelegte, geänderte und entfernte CAA-Records meldet DomainWarn als Änderung; der Check läuft einmal am Tag. Neue Zertifikate von unbekannten Ausstellern zeigt zusätzlich der Check Zertifikatsausstellung.
DomainWarn prüft das für alle deine Domains regelmäßig und meldet sich, wenn etwas fehlt oder sich ändert.