Een SaaS-uitgever ontdekt een geldig TLS-certificaat voor 'app.example.com', uitgegeven door een autoriteit waarmee hij nooit contact heeft opgenomen. De site werkt, het hangslot is groen, niemand heeft een waarschuwing ontvangen. Bij dieper graven ontdekte het team dat drie weken eerder een DNS-validatie was uitgevoerd – waarschijnlijk nadat de toegang tot de registrar of een account bij de DNS-provider was gecompromitteerd. Zonder CAA-registratie waren er geen regels die deze uitzending verboden.
De CAA (Certification Authority Authorization) is een kleine, vaak vergeten DNS-record die een eenvoudige vraag beantwoordt: wie heeft het recht om een certificaat voor deze naam te ondertekenen?
Wat de CAA toestaat – en wat het niet doet
Een CAA-record codeert niets en vervangt HTTPS niet. Het vertelt certificeringsinstanties (CA's) welke entiteiten een certificaat voor uw domein kunnen uitgeven. Sinds 2017 moeten CA-leden van het CA/B-forum de CAA verifiëren voordat ze ondertekenen, behalve in zeer beperkte gevallen.
| Tag CAA | Effect | Voorbeeld |
|---|---|---|
probleem | Autoriseert een CA voor standaardcertificaten | 0 probleem "letsencrypt.org" |
issuewild | Staat een CA toe voor jokertekens (*.domain) | 0 issuewild "digicert.com" |
iodef | Notificatieadres bij niet-conform verzoek | 0 iodef "mailto:secu@example.com" |
De CAA biedt geen bescherming tegen een CA die de regel negeert (zeldzaam maar historisch gedocumenteerd). Het blokkeert ook geen aanvaller die al uw webserver of uw privésleutel beheert. Bovenal sluit het de stilste deur: frauduleuze verzending via DNS- of HTTP-validatie.
Zonder CAA kan elke erkende CA proberen uw domein te valideren. Met CAA verkleint u de oppervlakte tot de door u gedefinieerde witte lijst.
Wanneer CAA essentieel wordt
Drie situaties maken het tot een prioriteit:
Automatische verlenging. Let's Encrypt, ZeroSSL of een interne ACME: als u CA's beperkt zonder uw eigen CA's op te nemen, wordt de verlenging op zondag om middernacht beëindigd.
Multi-vendor. CDN, host, load balancer: elk kan zijn eigen certificaat aanbieden. De CAA dwingt een expliciete beslissing af in plaats van een opportunistische uitzending.
Hoge zichtbaarheidsdomeinen. E-commerce, authenticatie, openbare API's: een parallel certificaat maakt onderschepping mogelijk zonder uw hoofdinfrastructuur te beïnvloeden.
Concrete syntaxis afhankelijk van je stapel
Minimaal voorbeeld voor alleen een Let's Encrypt-site:
voorbeeld.com. CAA 0-probleem "letsencrypt.org"
voorbeeld.com. CAA 0 issuewild "letsencrypt.org"
Als u Cloudflare voor TLS gebruikt en Let's Encrypt in de oorspronkelijke versie behoudt:
voorbeeld.com. CAA 0-probleem "letsencrypt.org"
voorbeeld.com. CAA 0 probleem "digicert.com"
Cloudflare gebruikt DigiCert voor zijn edge-certificaten; Let's Encrypt blijft gebruikelijk aan de serverkant. Het weglaten van een van de twee veroorzaakt mislukte verlengingen die moeilijk te diagnosticeren zijn.
| Scenario | CA moet worden geautoriseerd | Gemeenschappelijke val |
|---|---|---|
| VPS + Certbot | letsencrypt.org | issuewild vergeten terwijl er een *.domain bestaat |
| CDN oranje wolk | CDN-omzet + oorspronkelijke omzet | Vermeld alleen Let's Encrypt |
| EV-bedrijfscertificaat | Alleen uw contractuele omzet | Interne staging per ongeluk blokkeren |
Fouten die de productie op vrijdagavond onderbreken
CAA te restrictief vóór migratie. CA wijzigen? Update de CAA voor dat u het nieuwe nummer lanceert, niet erna.
Lange TTL + propagatie. Het kan uren duren voordat een foutieve CAA is gecorrigeerd, afhankelijk van de TTL. Verlaag deze tijdelijk wanneer u een wijziging doorvoert.
Subdomein met lege CAA. Een leeg CAA-record (;) op een subdomein verbiedt elke verzending voor dat subdomein - handig voor de veiligheid, fataal als het onbedoeld is.
Verwarring met SPF/DKIM. CAA heeft alleen betrekking op X.509-certificaten, niet op e-mail.
De top: het groene hangslot bewijst niet dat het uw certificaat is
Dit is het punt dat de ‘HTTPS-enabled’-checklists ontgaan: de aanwezigheid van TLS garandeert niet de uniciteit van de ondertekenaar. Bewaak certificaattransparantielogboeken en combineer CAA + waarschuwingen over onverwachte emissies.
Beslis en ga vooruit zonder blinde vlek
- Inventaris wie uw certificaten vandaag uitgeeft (oorsprong, CDN, staging).
- Publiceer de bijbehorende CAA-records,
issueenissuewild, indien nodig. - Test een ACME-vernieuwing tijdens het droogdraaien voordat deze wordt vergrendeld.
- Voeg een
iodef-adres toe aan uw beveiligingsteam of een gecontroleerde alias. - Document de CA-wijzigingsprocedure in uw runbook.
Om hosts te vergelijken die ACME of beheerde certificaten integreren, raadpleegt u onze overzicht en de vergelijker. De gids DNSSEC voltooit deze aanpak als u de hele DNS-keten verhardt.
Veelgestelde vragen
Wat is een CAA-registratie precies?
Het is een DNS-record (CAA-type) waarin de certificeringsinstanties worden vermeld die bevoegd zijn om certificaten voor een domein of een wildcard uit te geven. Serieuze CA's raadplegen het voordat ze ondertekenen.
Vervangt CAA de automatische verlenging van Let's Encrypt?
Nee. Hij lijst het in. Als u Let's Encrypt gebruikt, voeg dan letsencrypt.org toe aan uw CAA-records, anders mislukt de verlenging bij de volgende deadline.
Is er voor elk subdomein een CAA vereist?
Nee. Resolvers gaan hogerop in de DNS-keten: een CAA op example.com geldt voor subdomeinen, tenzij er op het betreffende subdomein een specifiekere CAA bestaat.
Hoe controleer ik of de CAA actief is?
Vraag de DNS op met dig CAA example.com of een online tool, en probeer vervolgens een testuitzending vanaf een niet-geregistreerde CA; deze zou moeten weigeren.
De volgende keer dat iemand je vertelt “de site is in HTTPS, het is goed”, vraag dan ook: wie heeft het recht om voor dit domein te tekenen?
