Als je een domeinnaam hebt en gebruikmaakt van SSL-certificaten, dan wil je zeker weten dat alleen jij bepaalt wie certificaten mag uitgeven voor jouw domein. Dat is precies wat een CAA-record doet. In dit artikel leggen we uit hoe een CAA-record werkt, wat het nut ervan is en hoe je er een aanmaakt.
Wat is een CAA-record?
Een CAA-record (Certification Authority Authorization) is een DNS-record waarmee je aangeeft welke certificaatautoriteiten (CA’s) een SSL-certificaat voor jouw domein mogen uitgeven.
Met andere woorden: je bepaalt wie er wél en niet een certificaat mag aanvragen voor je domein. Zo voorkom je dat een onbekende of malafide partij een certificaat uitgeeft voor jouw domein zonder jouw toestemming.
Voorbeeld:
example.com. IN CAA 0 issue "letsencrypt.org"
In dit voorbeeld geef je aan dat alleen Let’s Encrypt een SSL-certificaat voor example.com mag uitgeven.
Waarom is een CAA-record belangrijk?
Zonder CAA-record kan elke certificaatautoriteit (CA) technisch gezien een certificaat uitgeven voor jouw domein. Dat is niet per se verkeerd, maar het vergroot wel het risico op misbruik , bijvoorbeeld als een CA per ongeluk een certificaat uitgeeft aan iemand die zich voordoet als jou. Je bepaalt zelf welke CA’s je vertrouwt en daarmee sluit je automatisch alle anderen uit.
- Beveiliging tegen misbruik
Je voorkomt dat een kwaadwillende of foutieve CA een certificaat uitgeeft voor jouw domein zonder jouw toestemming. - Bescherming tegen social engineering
Als een aanvaller een andere CA weet te misleiden, blokkeert jouw CAA record de uitgifte automatisch. - Voorkomen van fouten bij certificaataanvragen
Stel dat je per ongeluk een certificaat aanvraagt bij een verkeerde CA, dan zal die aanvraag worden geweigerd als je een CAA-record hebt ingesteld.
Met een CAA-record verbeter je dus de veiligheid van je domein.
Hoe werkt een CAA-record?
Wanneer iemand een SSL-certificaat aanvraagt voor jouw domein, controleert de certificaatautoriteit eerst het DNS van het domein.
- Staat er een CAA-record, dan mag de CA alleen een certificaat uitgeven als haar naam in dat record voorkomt.
- Staat er geen CAA-record, dan mag elke CA een certificaat uitgeven.
Je kunt meerdere CAA-records gebruiken om verschillende CA’s toe te staan, bijvoorbeeld:
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issue "sectigo.com"
Er bestaan drie belangrijke tags:
- issue: staat uitgifte van standaardcertificaten toe;
- issuewild: staat uitgifte van wildcard-certificaten toe;
- iodef: bepaalt waar meldingen naartoe worden gestuurd als een CA een probleem ontdekt.
Voorbeeld wildcard met melding:
example.com. IN CAA 0 issuewild "letsencrypt.org"
example.com. IN CAA 0 iodef "mailto:admin@example.com"
Hoe stel je een CAA-record in?
Je kunt een CAA-record toevoegen in het DNS-beheer van je domein, bijvoorbeeld via DirectAdmin, Plesk, of je registrar.
Stappenplan
Hieronder zie je een voorbeeld van hoe je in DirectAdmin een CAA-record instelt waarmee je uitsluitend Let’s Encrypt toestaat als certificaatverstrekker.
- Ga in DirectAdmin naar DNS Management.
- Klik op Add Record.
- Vul het formulier in:
Record Type: CAA.
Name: leeg laten
TTL: ongewijzigd laten (3600)
Value: 0 issue “letsencrypt.org” - Klik op Add.
Binnen enkele minuten tot uren is het CAA-record actief.
Een iodef-tag toevoegen
De iodef-tag (Incident Object Description Exchange Format) is een optioneel onderdeel van een CAA-record. Hiermee geef je aan waar een CA een melding naartoe moet sturen als:
- iemand een certificaat probeert aan te vragen bij een CA die niet is toegestaan volgens jouw CAA-records;
- er een andere fout optreedt tijdens de validatie van een certificaataanvraag
- Klik in DirectAdmin DNS Management weer op Add Record.
- Vul het formulier in:
Record Type: CAA
Name: leeg laten
TTL: ongewijzigd laten (3600)
Value: 0 iodef “mailto:admin@example.com” (wijzig admin@example.com in jouw e-mailadres) - Klik op Add.
Zo geef je aan: ‘Alleen Let’s Encrypt mag certificaten uitgeven, en als iemand anders het probeert of er een fout optreedt, stuur me dan een waarschuwing’.
Tips
- Gebruik altijd één CAA-record per CA in plaats van meerdere waarden in één regel.
- Als je geen wildcardcertificaten gebruikt, hoef je issuewild niet op te nemen. Gebruik dus issue voor standaard certificaten en issuewild als je ook wildcard-certificaten toestaat.
- Test je CAA-record met online tools, bijvoorbeeld https://caatest.co.uk of https://dnschecker.org.
De gevolgen van typfouten in een CAA-record
Een typfout in de naam van de Certificate Authority (CA) in je CAA-record kan ervoor zorgen dat je certificaat niet meer automatisch wordt vernieuwd.
Stel, je bedoelt dit:
0 issue "letsencrypt.org"
maar je typt per ongeluk:
0 issue "lets-encrypt.org"
Dan gebeurt het volgende:
- Let’s Encrypt controleert je CAA-record voordat het een certificaat uitgeeft of vernieuwt.
- Ze zien dat hun domeinnaam niet voorkomt in jouw CAA-record.
- Gevolg: de aanvraag wordt geweigerd, ook als het certificaat de automatische vernieuwing probeert uit te voeren en het eerder wel werkte. Het certificaat kan dus niet verstrekt of vernieuwd worden en je domein is onbeveiligd.
Hoe voorkom je dit:
- Gebruik daarom alleen officiële CA-domeinnamen. Voor Let’s Encrypt is dat: letsencrypt.org.
- Controleer je CAA-records met een validator zoals https://caatest.co.uk.
- Voeg een iodef-tag toe zodat je een melding krijgt als een aanvraag wordt geblokkeerd.
Conclusie
Een CAA-record is een kleine, maar belangrijke toevoeging aan de beveiliging van je domein. Door expliciet aan te geven welke certificaatautoriteiten een SSL-certificaat mogen uitgeven, verklein je de kans op misbruik en houd je de controle over je domein. Het kost weinig moeite om in te stellen en geeft je een extra beveiligingslaag.

