Vad är en CAA-post?
En CAA-post (Certificate Authority Authorization) är en typ av DNS-post som anger vilka certifikatutfärdare (CA) som får utfärda SSL/TLS-certifikat för en domän. CAA fungerar som en säkerhetskontroll och förhindrar obehörig certifikatutfärdning även om en angripare lyckas kompromettera en CA.
Varför CAA-poster är viktiga
Utan CAA-poster skulle vilken som helst av hundratals betrodda CA kunna utfärda ett certifikat för din domän. Det innebär flera risker:
- Komprometterad CA: Om en betrodd CA komprometteras kan angripare få certifikat för din domän
- Felaktig utfärdning: CA:er utfärdar ibland certifikat felaktigt
- Social manipulation: Angripare kan lura en CA att utfärda obehöriga certifikat
CAA-poster minskar angreppsytan genom att begränsa vilka CA:er som får utfärda certifikat för din domän.
Så fungerar CAA
1. Domänägaren publicerar CAA-poster i DNS
2. Certifikatbegäraren ber en CA om ett certifikat
3. CA:n kontrollerar CAA-posterna för domänen
4. CA:n utfärdar endast om den är behörig, eller om det inte finns några CAA-poster
5. Vid obehörighet måste CA:n avslå begäran
Obligatorisk kontroll av CA
Sedan september 2017 måste alla CA:er kontrollera CAA-poster innan certifikat utfärdas. Det ingår i CA/Browser Forums grundkrav.
CAA-postens format
example.com. IN CAA 0 issue "letsencrypt.org"
Komponenter:
- 0: Flaggor (0 = icke-kritisk, 128 = kritisk)
- issue/issuewild/iodef: Egenskapstagg
- "letsencrypt.org": Egenskapsvärde (den behöriga CA:n)
Egenskapstaggar
| Tagg | Syfte | Exempel |
|---|---|---|
| issue | Tillåt CA:n för alla certifikat | issue "letsencrypt.org" |
| issuewild | Tillåt CA:n för wildcard-certifikat | issuewild "digicert.com" |
| iodef | Rapportera obehöriga försök | iodef "mailto:[email protected]" |
Exempel på CAA-poster
En CA (endast Let's Encrypt)
example.com. CAA 0 issue "letsencrypt.org"
Flera CA:er
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issue "digicert.com"
example.com. CAA 0 issue "sectigo.com"
Begränsning för wildcard
Tillåt Let's Encrypt för vanliga certifikat och DigiCert för wildcard-certifikat:
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issuewild "digicert.com"
Neka alla (inga certifikat)
Användbart för domäner som aldrig ska ha certifikat:
example.com. CAA 0 issue ";"
Med rapportering
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 iodef "mailto:[email protected]"
Vanliga CA-identifierare
| CA | Identifierare |
|---|---|
| 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 |
Kontrollera din CA:s dokumentation för den exakta identifierare som ska användas.
Implementera CAA-poster
Via DNS-leverantör
De flesta DNS-leverantörer har stöd för CAA-poster i sitt gränssnitt.
Via zonfil
; 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]"
CAA-arv
CAA-poster följer DNS-hierarkin:
- Om example.com har CAA-poster gäller de för subdomäner
- Subdomäner kan ha egna CAA-poster och åsidosätta förälderns poster
- Utan CAA-poster kan vilken CA som helst utfärda
example.com. CAA 0 issue "letsencrypt.org" ; Applies to all
api.example.com. CAA 0 issue "digicert.com" ; Override for api
Kontrollera CAA-poster
Med dig:dig example.com CAA
; ANSWER SECTION:
example.com. 300 IN CAA 0 issue "letsencrypt.org"
Med DomScan:
curl "https://domscan.net/v1/health?domain=example.com"
# Reports hasCAA in security details
Bästa praxis för CAA
1. Konfigurera alltid CAA: Minska angreppsytan
2. Ta med alla CA:er du använder: Glöm inte CA:er från CDN- och molnleverantörer
3. Konfigurera iodef: Få meddelanden om obehöriga försök
4. Testa före införande: Kontrollera att dina CA:er fortfarande kan utfärda
5. Håll posterna uppdaterade: Lägg till nya CA:er innan du begär certifikat
Vanliga CAA-problem
Certifikatförnyelsen misslyckas: CA:n finns inte i CAA-posterna, lägg till den innan certifikatet löper ut CDN-certifikat misslyckas: CDN-leverantörens CA är inte behörig, kontrollera vilken CA CDN-tjänsten använder CAA-post saknas för subdomän: Barnet ärver förälderns CAA-post, ange specifika poster vid behovCAA är en enkel men kraftfull säkerhetskontroll som varje domän bör införa.