Wat is een CAA-record?
Een CAA-record (Certificate Authority Authorization) is een DNS-recordtype dat vastlegt welke certificaatautoriteiten (CA's) SSL/TLS-certificaten voor een domein mogen uitgeven. CAA is een beveiligingscontrole die onbevoegde certificaatuitgifte voorkomt, zelfs wanneer een aanvaller een CA compromitteert.
Waarom CAA-records belangrijk zijn
Zonder CAA-records kan elk van de honderden vertrouwde CA's een certificaat voor uw domein uitgeven. Dat brengt risico's met zich mee:
- Compromittering van een CA: als een vertrouwde CA wordt gecompromitteerd, kunnen aanvallers certificaten voor uw domein verkrijgen
- Onjuiste uitgifte: CA's geven soms ten onrechte certificaten uit
- Social engineering: aanvallers kunnen een CA misleiden om onbevoegde certificaten uit te geven
CAA-records verkleinen het aanvalsoppervlak door te beperken welke CA's voor uw domein mogen uitgeven.
Hoe CAA werkt
1. De domeineigenaar publiceert CAA-records in DNS
2. De certificaataanvrager vraagt een CA om een certificaat
3. De CA controleert de CAA-records voor het domein
4. De CA geeft het certificaat uit als dit is toegestaan, of als er geen CAA-records bestaan
5. Bij onbevoegdheid moet de CA het verzoek weigeren
Verplichte controle door CA's
Sinds september 2017 moeten alle CA's CAA-records controleren voordat zij certificaten uitgeven. Dit maakt deel uit van de Baseline Requirements van het CA/Browser Forum.
Indeling van een CAA-record
example.com. IN CAA 0 issue "letsencrypt.org"
Onderdelen:
- 0: vlaggen (0 = niet-kritiek, 128 = kritiek)
- issue/issuewild/iodef: eigenschapstag
- "letsencrypt.org": eigenschapswaarde (de geautoriseerde CA)
Eigenschapstags
| Tag | Doel | Voorbeeld |
|---|---|---|
| issue | CA machtigen voor alle certificaten | issue "letsencrypt.org" |
| issuewild | CA machtigen voor wildcardcertificaten | issuewild "digicert.com" |
| iodef | Onbevoegde pogingen melden | iodef "mailto:[email protected]" |
Voorbeelden van CAA-records
Eén CA (alleen Let's Encrypt)
example.com. CAA 0 issue "letsencrypt.org"
Meerdere CA's
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issue "digicert.com"
example.com. CAA 0 issue "sectigo.com"
Beperking voor wildcardcertificaten
Sta Let's Encrypt toe voor gewone certificaten en DigiCert voor wildcardcertificaten:
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issuewild "digicert.com"
Alles weigeren (geen certificaten)
Nuttig voor domeinen waarvoor nooit certificaten mogen worden uitgegeven:
example.com. CAA 0 issue ";"
Met rapportage
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 iodef "mailto:[email protected]"
Veelgebruikte CA-identifiers
| CA | Identifier |
|---|---|
| Let's Encrypt | letsencrypt.org |
| DigiCert | digicert.com |
| Sectigo (Comodo) | sectigo.com |
| GlobalSign | globalsign.com |
| GoDaddy | godaddy.com |
| Amazon | amazon.com |
| Google Trust Services | pki.goog |
Raadpleeg de documentatie van uw CA voor de exacte identifier die u moet gebruiken.
CAA-records implementeren
Via een DNS-provider
De meeste DNS-providers ondersteunen CAA-records in hun interface.
Via een zonebestand
; Allow Let's Encrypt and DigiCert
@ IN CAA 0 issue "letsencrypt.org"
@ IN CAA 0 issue "digicert.com"
@ IN CAA 0 iodef "mailto:[email protected]"
Overerving van CAA
CAA-records volgen de DNS-hiërarchie:
- Als example.com CAA-records heeft, gelden die voor subdomeinen
- Subdomeinen kunnen eigen CAA-records hebben en de bovenliggende records overschrijven
- Zonder CAA-records kan elke CA certificaten uitgeven
example.com. CAA 0 issue "letsencrypt.org" ; Applies to all
api.example.com. CAA 0 issue "digicert.com" ; Override for api
CAA-records controleren
Via dig:dig example.com CAA
; ANSWER SECTION:
example.com. 300 IN CAA 0 issue "letsencrypt.org"
Via DomScan:
curl "https://domscan.net/v1/health?domain=example.com"
# Reports hasCAA in security details
Beste praktijken voor CAA
1. Configureer altijd CAA: verklein uw aanvalsoppervlak
2. Neem alle CA's op die u gebruikt: vergeet CA's van CDN- of cloudproviders niet
3. Stel iodef in: ontvang meldingen over onbevoegde pogingen
4. Test vóór handhaving: controleer of uw CA's nog steeds certificaten kunnen uitgeven
5. Houd records actueel: voeg nieuwe CA's toe voordat u certificaten aanvraagt
Veelvoorkomende CAA-problemen
Certificaatvernieuwing mislukt: de CA staat niet in de CAA-records, voeg deze toe voordat het certificaat verloopt. CDN-certificaten mislukken: de CA van de CDN-provider is niet geautoriseerd, controleer welke CA uw CDN gebruikt. CAA voor subdomein ontbreekt: het subdomein erft de CAA van de ouder, stel specifieke records in als dat nodig is.CAA is een eenvoudige maar krachtige beveiligingscontrole die elk domein zou moeten implementeren.