Was ist ein CAA-Record?
CAA (Certification Authority Authorization, RFC 8659) legt im DNS fest, welche Zertifizierungsstellen (CAs) Zertifikate für eine Domain ausstellen dürfen. Seit September 2017 muss jede öffentlich vertrauenswürdige CA vor der Ausstellung den CAA-Record prüfen. Steht sie nicht darin, muss sie den Antrag ablehnen. Das erschwert es, sich bei einer beliebigen CA über eine schwache Validierung ein Zertifikat für fremde Domains zu besorgen.
Ohne CAA-Record darf jede CA ausstellen. Das ist der Normalzustand der meisten Domains und kein Fehler; der Checker meldet es als Hinweis.
Aufbau des Records
Ein CAA-Record besteht aus Flag, Tag und Wert. Ein typischer Satz für eine Domain, die Let's Encrypt und Sectigo nutzt und keine Wildcard-Zertifikate braucht:
- Flag: im Normalfall 0. 128 (critical) heißt: Eine CA, die den Tag nicht kennt, darf nicht ausstellen.
- issue: eine CA, die Zertifikate für diesen Namen ausstellen darf, ein Record je CA. issue ";" verbietet jede Ausstellung.
- issuewild: gilt nur für Wildcard-Zertifikate (*.beispiel.de) und hat dort Vorrang vor issue. Fehlt es, gilt issue auch für Wildcards. issuewild ";" verbietet Wildcards, lässt normale Zertifikate aber zu.
- iodef: eine Adresse (mailto: oder https://), an die eine CA abgelehnte Anträge melden kann. Optional, und nicht jede CA nutzt es.
beispiel.de. IN CAA 0 issue "letsencrypt.org"
beispiel.de. IN CAA 0 issue "sectigo.com"
beispiel.de. IN CAA 0 issuewild ";"
beispiel.de. IN CAA 0 iodef "mailto:security@beispiel.de"Vom Hostnamen aufwärts
Eine CA sucht den CAA-Satz zuerst am Hostnamen selbst, etwa shop.beispiel.de, dann an beispiel.de, dann an de. Der erste Name mit CAA-Records gilt, alles darüber spielt keine Rolle. Ein Record an beispiel.de regelt damit alle Subdomains ohne eigenen Record mit. Zeigt www.beispiel.de per CNAME auf einen Hoster, zählt ein CAA-Record am Alias-Ziel; weitergeklettert wird aber an beispiel.de, nicht an der Domain des Hosters. RFC 8659 hat das Klettern am CNAME-Ziel aus dem Vorgänger RFC 6844 gestrichen, der Checker hält sich daran.
Abgleich mit dem aktuellen Zertifikat
Ein CAA-Record allein sagt wenig. Entscheidend ist, ob er die CA erlaubt, die tatsächlich ausstellt. Der Checker liest den Aussteller aus dem Zertifikat, das der Server auf Port 443 ausliefert, und ordnet ihn den CAA-Kennungen zu, die diese CA anerkennt. Rund 30 CAs sind bekannt, darunter:
- Let's Encrypt: letsencrypt.org
- Sectigo und ZeroSSL (ZeroSSL stellt über Sectigo aus): sectigo.com, früher comodoca.com
- DigiCert samt GeoTrust, Thawte und RapidSSL: digicert.com
- Google Trust Services: pki.goog
- Cloudflare: Edge-Zertifikate stammen je nach Zone von Google Trust Services, Let's Encrypt, SSL.com oder Sectigo, und Cloudflare kann zwischen ihnen wechseln. Wer eigene CAA-Records setzt, gibt deshalb alle frei, die Cloudflare verwendet.
- Wildcard-Zertifikat: Enthält das Zertifikat *.beispiel.de, prüft der Checker issuewild an beispiel.de, denn danach richtet sich die Verlängerung.
- Weitere Namen: Deckt das Zertifikat auch www.beispiel.de oder andere Namen der Domain ab, prüft der Checker deren CAA-Satz ebenfalls. Die Verlängerung braucht die Freigabe für jeden Namen.
- Unbekannte CA oder ein Zertifikat, das den Namen gar nicht abdeckt (Standardzertifikat des Hosters): kein Urteil statt eines falschen Alarms.
Typische Fehler
- CA gewechselt, Record vergessen: Der Record wurde für eine CA gesetzt, später stellt der Hoster oder das CDN auf eine andere um. Das laufende Zertifikat bleibt gültig, die nächste Verlängerung wird verweigert, und Wochen später läuft das Zertifikat ab. Der häufigste und teuerste CAA-Fehler.
- Wildcard vergessen: issuewild ";" oder issuewild nur für eine andere CA, obwohl das Zertifikat *.beispiel.de enthält.
- Anführungszeichen: Im Zonefile gehört der Wert in Anführungszeichen. Weboberflächen setzen sie oft selbst; wer sie zusätzlich eintippt, veröffentlicht einen Wert, den keine CA erkennt.
- Critical-Flag mit unbekanntem Tag: Ein Tippfehler wie „0 isue“ wird ignoriert, „128 isue“ dagegen verbietet jede Ausstellung.
- Kennung der falschen Firma: ZeroSSL erwartet sectigo.com, RapidSSL digicert.com. Maßgeblich ist die CA, die das Zertifikat signiert, nicht der Händler.
So liest du das Ergebnis
- Kein CAA-Record: Hinweis, jede CA darf ausstellen. Im Domain-Check kostet das keine Punkte.
- CAA erlaubt die aktuelle CA: alles in Ordnung.
- CAA sperrt die aktuelle CA aus: Warnung. Das Zertifikat gilt weiter, die nächste Verlängerung scheitert.
- Ungültiger Record oder unbekannter Tag mit Critical-Flag: Warnung. Im zweiten Fall verweigert jede CA die Ausstellung.
- Kein issue-Tag, nur issuewild oder iodef: Hinweis. Normale Zertifikate sind dann nicht beschränkt.
- Kein iodef: Hinweis, rein optional.
CAA dauerhaft überwachen
Ein CAA-Record veraltet nicht von selbst, aber das Umfeld ändert sich: Der Hoster wechselt die CA, ein CDN kommt dazu, eine Subdomain bekommt ein eigenes Zertifikat. DomainWarn gleicht die CAA-Policy täglich für jede Kundendomain und jeden Hostnamen mit Zertifikat mit dem tatsächlichen Aussteller ab und meldet, wenn der Record die eigene CA aussperrt, bevor die Verlängerung scheitert.
Häufige Fragen
- Brauche ich einen CAA-Record?
- Nein. Ohne Record darf jede CA ausstellen, und alles funktioniert. Ein CAA-Record ist eine zusätzliche Absicherung. Wer ihn setzt, muss ihn aber bei jedem Wechsel der CA mitpflegen, sonst scheitert die Verlängerung.
- Warum fällt ein falscher Record erst Wochen später auf?
- CAA wird nur bei der Ausstellung geprüft. Das laufende Zertifikat ist schon ausgestellt und gilt bis zu seinem Ablauf. Die automatische Verlängerung beginnt meist einige Wochen vorher; scheitern die Versuche still, läuft das Zertifikat ab.
- Gilt der Record auch für Subdomains?
- Ja, solange die Subdomain keinen eigenen CAA-Record hat. Hat sie einen, gilt nur dieser, und der Record der Domain spielt für sie keine Rolle.
- Wie schnell wirkt eine Änderung?
- CAs fragen bei jeder Ausstellung neu ab, dürfen ein Ergebnis aber bis zu acht Stunden wiederverwenden. Dazu kommt die TTL des alten Records in Resolver-Caches. Nach einer Änderung also im Zweifel einige Stunden warten, bevor du die Ausstellung erneut anstößt.