Vad är CAA-poster?
Certification Authority Authorization (CAA) är en DNS-posttyp definierad i RFC 8659. Den talar om för certifikatutfärdare om de har tillåtelse att utfärda certifikat för din domän.
Sedan september 2017 är alla publika CA:er skyldiga att kontrollera CAA-poster innan de utfärdar ett certifikat. Om din CAA-post inte tillåter den aktuella CA:n, måste CA:n avvisa begäran.
CAA är en policy-mekanism som upprätthålls av CA:erna vid utfärdande, snarare än en teknisk spärr i TLS-protokollet. Om en CA ignorerar din CAA-post och utfärdar certifikatet ändå, bryter den mot CA/Browser Forums regler, vilket kan kosta den sin plats i trust stores.
Hur CAA fungerar
En CAA-post har tre delar:
- Flag: Normalt 0. Värdet 128 (critical flag) innebär att CA:n måste avvisa utfärdande om den inte förstår property-taggen.
- Tag:
issue(tillåter vanlig utfärdande),issuewild(tillåter wildcard-utfärdande) elleriodef(notifikation vid avvisade försök). - Value: CA:ns domännamn (t.ex.
digicert.com) eller en tom sträng för att blockera alla.
CA:n slår upp CAA för den specifika domänen. Om det inte finns någon CAA-post söker den uppåt i DNS-hierarkin (t.ex. från www.example.se till example.se). Om inga CAA-poster finns alls, betraktas alla CA:er som tillåtna.
Konfiguration av CAA-poster
Ett typiskt setup för ett företag som använder DigiCert och GlobalSign:
example.se. CAA 0 issue "digicert.com"
example.se. CAA 0 issue "globalsign.com"
example.se. CAA 0 issuewild "digicert.com"
example.se. CAA 0 iodef "mailto:ssl-admin@example.se"
I det här exemplet kan både DigiCert och GlobalSign utfärda vanliga certifikat, men bara DigiCert kan utfärda wildcard-certifikat. Alla avvisade försök rapporteras via e-post.
Implicit blockering
När du skapar minst en issue-post blockerar du implicit alla andra CA:er. Du behöver ingen explicit "blockera alla"-post.
Du kan blockera wildcard-certifikat helt genom att lägga till en tom issuewild-post:
example.se. CAA 0 issuewild ";"
En annan strategi är att tillåta en CA för wildcards och andra bara för specifika domännamn:
example.se. CAA 0 issue "digicert.com"
example.se. CAA 0 issue "globalsign.com"
example.se. CAA 0 issuewild "digicert.com"
Här kan både DigiCert och GlobalSign utfärda vanliga certifikat, men bara DigiCert kan utfärda wildcards.
CAA stöder även issuemail för S/MIME-certifikat (RFC 9495). Det fungerar som issue, men styr vilka CA:er som får utfärda e-postcertifikat för din domän:
example.se. CAA 0 issuemail "digicert.com"
Använd vår CAA-postgenerator för att bygga rätt konfiguration för din domän.
CA-identifierare
De viktigaste CA:erna och deras CAA-identifierare:
| CA | CAA issue-värde | Kommentar |
|---|---|---|
| DigiCert | digicert.com | Täcker även RapidSSL, GeoTrust, Thawte |
| GlobalSign | globalsign.com | Täcker även AlphaSSL |
| Sectigo | sectigo.com | Täcker även gamla Comodo-produkter och ZeroSSL |
| Let's Encrypt | letsencrypt.org | Används av de flesta hostingleverantörer (one.com, Simply, cPanel m.fl.) |
| Certum | certum.pl | |
| ssl.com | ssl.com | Övertog Entrust CA-verksamheten |
Moln- och hostingleverantörernas CA:er
De stora molnplattformarna driver egna CA:er. Använder du deras automatiska certifikatutfärdande (t.ex. AWS Certificate Manager eller Cloudflare) måste du tillåta deras CA i dina CAA-poster, annars misslyckas auto-provisioning.
Molnplattformar har egna CA:er
Använder du managed TLS-certifikat från molnplattformar (AWS, Azure, Cloudflare) måste du tillåta deras CA i dina CAA-poster. Annars misslyckas auto-provisioning.
| Plattform | CAA issue-värde | Kommentar |
|---|---|---|
| Amazon (AWS) | amazon.com | AWS Certificate Manager (ACM). Krävs för ALB/CloudFront-certifikat. |
| Google Cloud | pki.goog | Google Trust Services. Även gratis ACME-server. |
| Cloudflare | letsencrypt.orgdigicert.compki.goog | Cloudflare använder flera CA:er. Tillåt alla tre för att undvika problem. |
| Microsoft Azure | digicert.com | Azure App Service använder DigiCert för managed certificates. |
DigiCerts identifierare täcker alla deras undervarumärken. Du behöver inte lägga till separata poster för RapidSSL eller GeoTrust.
Avancerade CAA-parametrar
Notifikation vid utfärdandeförsök (iodef)
CAA stöder en iodef-egenskap som ber CA:n att skicka en notifikation om någon försöker utfärda ett certifikat för din domän och avvisas av CAA-reglerna. Det kräver bara en extra DNS-post:
example.se. CAA 0 iodef "mailto:ssl-alerts@example.se"
Du kan också ange en HTTPS-URL om du vill ta emot strukturerade rapporter via en webhook:
example.se. CAA 0 iodef "https://example.se/caa-report"
Inte alla CA:er implementerar iodef, men de stora (DigiCert, Sectigo) gör det. Det ger en tidig varning om någon försöker missbruka din domän.
Använd alltid iodef
Lägg till en iodef-post med en e-postadress. Då får du meddelande om en CA avvisar en utfärdandebegäran för din domän. Det kostar ingenting och ger tidig varning om missbruk.
Kontolåsning (accounturi)
Du kan begränsa utfärdande till ett specifikt konto hos CA:n genom att lägga till accounturi som parameter:
example.se. CAA 0 issue "letsencrypt.org; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/123456789"
Det säkerställer att bara det specifika ACME-kontot kan utfärda certifikat, även om CA:n är tillåten i CAA. Det är främst relevant för organisationer som vill förhindra att andra avdelningar eller medarbetare skapar certifikat utanför de normala kanalerna.
CAA vs HPKP: Varför CAA vann
HTTP Public Key Pinning (HPKP) var ett tidigare försök att begränsa vilka certifikat en webbläsare skulle acceptera för en domän. HPKP låste fast specifika publika nycklar via en HTTP-header. Om du förlorade din privata nyckel eller gjorde ett fel i konfigurationen, låste du i praktiken ut alla användare från domänen under pin-periodens varaktighet (vanligtvis veckor eller månader). Det fanns ingen recovery-mekanism. Google Chrome tog bort HPKP-stödet 2018.
CAA löser samma problem (begränsa vem som kan utfärda) utan risken för självskada. Du kan alltid ändra dina CAA-poster, och ändringen träder i kraft inom DNS TTL-perioden. Inga användare blir utlåsta.
Vanliga misstag
- Blockerar CA:er du redan använder. Det vanligaste misstaget är att lägga till CAA-poster utan att veta vilka CA:er som redan utfärdar certifikat för din domän. Kontrollera crt.sh för att se alla utfärdade certifikat, eller använd vår CAA-generator för att bygga rätt poster baserat på din domän. Kom ihåg att CAA kontrolleras vid utfärdande, så nya certifikatbeställningar blockeras om CA:n inte är tillåten. Uppdatera CAA-poster innan du beställer från en ny CA.
- Glömmer issuewild. Om du sätter
issue-poster men inteissuewild, kan alla CA:er utfärda wildcards. Sätt explicitaissuewild-poster, eller användissuewild ";"för att blockera wildcards helt. - Bara issuewild utan issue. Ett wildcard-certifikat täcker typiskt både
*.example.seochexample.se. CA:n behöver därför tillåtelse via bådeissueochissuewild. Saknasissueavvisas certifikatet. - Glömmer subdomäner. CAA-poster ärvs i DNS-hierarkin. Om du sätter CAA på
example.segäller den även förwww.example.se, såvida intewww.example.sehar egna CAA-poster. - Fel CA-identifierare. Använd CA:ns officiella domän, inte din egen eller återförsäljarens. FairSSL är återförsäljare för DigiCert, GlobalSign och Sectigo, men CAA-värdet är CA:ns domän (t.ex.
digicert.com), intefairssl.se. - För låg TTL. Sätt en rimlig TTL (300-3600 sekunder). För låg TTL kan ge DNS-uppslagsproblem hos vissa CA:er.
- Saknar iodef.
iodef-poster är valfria, men användbara. De meddelar dig när en CA avvisar ett utfärdande på grund av din CAA-policy. Det kan avslöja felkonfigurationer eller försök till obehörigt certifikatutfärdande. - Glömmer hosting- eller molnplattformens CA. Många plattformar använder flera CA:er, inte bara en. Cloudflare växlar t.ex. mellan Let's Encrypt, DigiCert och Google Trust Services. Hostingleverantörer kan också använda både gratis och betalda CA:er. Blockerar din CAA bara en av dem, misslyckas certifikatutfärdandet nästa gång plattformen väljer en annan CA. Kontrollera vilka CA:er din plattform använder, och tillåt dem alla.
- CAA på andra domäner i certifikatet. Har ditt certifikat flera namn (SAN), kontrollerar CA:n CAA-poster för varje enskild domän. Om ett av namnen pekar via CNAME till en tjänsteleverantör med restriktiva CAA-poster som inte tillåter din CA, avvisas hela certifikatet. Det är ett fel som kan vara svårt att hitta, eftersom problemet ligger på en domän du inte själv kontrollerar.
Varför CAA och Certificate Transparency finns
CAA och Certificate Transparency (CT) Logs är båda skapade för att skydda dig som användare av certifikat, oavsett om du driver servrar eller besöker dem som slutanvändare.
Bakgrunden är en reell oro: CA:er kan bli övertagna, utpressade eller styrda av statsmakter. Till exempel komprometterades DigiNotar 2011, och den iranska staten använde de falska certifikaten för att avlyssna Gmail-trafik från iranska aktivister. CNNIC, en kinesisk statlig CA, utfärdade obehöriga certifikat 2015. I båda fallen var de falska certifikaten bara synliga i det land där de missbrukades. Resten av världen anade ingenting.
Scenariot är enkelt: en statsstyrd CA utfärdar ett certifikat för t.ex. gmail.com eller google.com, placerar det på ett övervakningssystem i landets nätverk, och kan sedan se vad dissidenter och aktivister skriver till varandra eller söker efter. Utan CT Logs och CAA fanns det ingen mekanism för att upptäcka eller förhindra det.
Certificate Transparency: inget certifikat utan offentlighet
CT Logs säkerställer att inget internet-giltigt certifikat kan fungera utan att vara offentligt registrerat i append-only-loggar som inte kan justeras i efterhand. Webbläsare (Chrome, Safari) kräver CT-bevis innan de accepterar ett certifikat. Om ett certifikat inte är loggat visar webbläsaren en varning.
Varje obehörig utfärdande blir synligt. Övervakningstjänster som crt.sh gör det möjligt att söka bland alla loggade certifikat för en domän. Organisationer som Facebook, Google och stora banker övervakar CT Logs aktivt och reagerar inom minuter om ett oväntat certifikat dyker upp.
CAA: kontroll över vem som får utfärda
CAA-poster ger dig direkt kontroll över vilka CA:er som överhuvudtaget får utfärda certifikat för din domän. Om ett certifikat dyker upp i CT Logs för din domän, och din DNS CAA tydligt blockerar den aktuella CA:n, är det ett starkt signal om att den CA:n har utfärdat utan tillåtelse. Det är en allvarlig överträdelse av CA/Browser Forums regler och kan kosta CA:n sin plats i trust stores.
Vill du minimera risken för att en kinesisk, amerikansk eller vilken statsstyrd CA som helst utfärdar certifikat på uppdrag av din domän, är CAA-poster den mest direkta lösningen. Kombinerat med CT-övervakning har du både förebyggande och upptäckt.
CAA kostar ingenting (en DNS-post). CT-övervakning är gratis. Det finns ingen anledning att inte använda båda.