Modul 5 · 5.2
CAA: vem får utfärda certifikat?
Modul 5: Övriga poster · Lästid: 6 minuter
Mål med lektionen: Efter den här lektionen kan du läsa ett CAA-record och vet du hur ett CAA-record kan blockera en ansökan om ett SSL-certifikat.
Nyckelbegrepp: CAA, issue, issuewild, iodef, certifikatutfärdare (CA), inget CAA-record betyder: alla får
Ett hänglås från en främling
Ett SSL-certifikat (egentligen ett TLS-certifikat) ger hänglåset i webbläsaren. Det utfärdas av en certifikatutfärdare, förkortat CA: till exempel Let's Encrypt, Sectigo, DigiCert eller Google Trust Services. Det finns dussintals CA:er som webbläsare litar på, och i princip får vilken som helst av dem utfärda ett certifikat för din domän, så länge den som ansöker visar att hen kontrollerar domänen.
Med ett CAA-record (Certification Authority Authorization, RFC 8659) begränsar du det. Du anger i DNS:en vilka CA:er som får utfärda certifikat för din domän. Varje CA är skyldig att kontrollera det här recordet innan den utfärdar ett certifikat. Finns CA:n inte med där måste den neka.
Det skyddar mot ett certifikat som utfärdas i ditt namn via en slarvig eller lurad CA. Det är ett extra lås, inget krav.
Hur ett CAA-record ser ut
example.com. 3600 IN CAA 0 issue "letsencrypt.org"
example.com. 3600 IN CAA 0 issue "sectigo.com"
example.com. 3600 IN CAA 0 iodef "mailto:beveiliging@example.com"Ett CAA-record har tre delar:
| Del | Exempel | Betydelse |
|---|---|---|
| Flagga | 0 | Nästan alltid 0. En 128 betyder: "förstår du inte den här regeln, utfärda då inget". |
| Tag | issue | Vilken typ av regel det är (se nedan). |
| Värde | "letsencrypt.org" | CA:n, angiven med sitt eget domännamn. Inom citattecken. |
De tre taggarna du stöter på:
issue: denna CA får utfärda vanliga certifikat (förexample.com,www.example.comoch så vidare).issuewild: denna CA får utfärda wildcardcertifikat (*.example.com). Finns ingenissuewildgällerissue-reglerna även för wildcards.iodef: vart en CA kan skicka en anmälan om någon ansöker om ett certifikat som enligt ditt CAA inte är tillåtet.
Du kan ha flera issue-regler: varje angiven CA får då utfärda. Vill du i stället att ingen ska utfärda en viss typ av certifikat använder du ett tomt värde: 0 issuewild ";" betyder "ingen får utfärda wildcards".
Inget CAA-record: alla får
Har din domän inget CAA-record får vilken CA som helst utfärda ett certifikat. Det är den normala situationen för de flesta domäner, och det är inte fel. CAA är ett val.
En CA letar upp CAA-recordet vid certifikatets exakta namn. Hittar den inget där tittar den en nivå högre upp, ända till domänen. Ett CAA-record på example.com gäller alltså även för shop.example.com, om inte shop.example.com har ett eget CAA-record.
Hur CAA kan blockera ditt certifikat
Det här är anledningen till att CAA hör hemma i en nybörjarkurs: ett CAA-record kan göra att ditt gratis certifikat inte längre förnyas, och felmeddelandet är inte alltid tydligt.
Tänk dig: din webbplats körde i flera år med ett certifikat från en betald CA. Någon skapade då ett CAA-record:
example.com. CAA 0 issue "sectigo.com"Nu flyttar du till hosting som automatiskt ansöker om Let's Encrypt-certifikat. Let's Encrypt kontrollerar CAA, ser att bara Sectigo får utfärda, och nekar. Din webbplats får inget certifikat och besökare ser en varning.
Lösningen: lägg till den CA du nu använder, eller ta bort det gamla CAA-recordet om du inte längre behöver det.
example.com. CAA 0 issue "sectigo.com"
example.com. CAA 0 issue "letsencrypt.org"Använder du en tjänst som sköter certifikat själv, till exempel en webbutiksplattform eller ett CDN, fråga då vilken CA den använder och lägg till den. Annars blockerar du deras certifikat också.
I praktiken: så ser det ut i ett kontrollpanel
Som exempel använder vi DNS-vyn i Mitt WebOké, som har en CAA-hjälp med de mest kända CA:erna. I DirectAdmin, Cloudflare och de flesta andra kontrollpaneler fyller du i samma tre fält: flagga, tag och värde.
- Klicka på Lägg till post och välj CAA.
- Låt namnet stå på själva domänen (
@). - Låt flaggan vara
0. - Välj taggen
issue. - Fyll i CA:n, till exempel
letsencrypt.org. - Spara och upprepa för varje CA som ska få utfärda.
Sammanfattning
- Med ett CAA-record bestämmer du vilka certifikatutfärdare som får utfärda certifikat för din domän.
issueär för vanliga certifikat,issuewildför wildcards,iodefför anmälningar.- Inget CAA-record betyder: alla CA:er får utfärda. Det är normalt.
- Ett CAA-record på domänen gäller även för subdomäner utan eget CAA.
- Ett bortglömt CAA-record kan blockera ett nytt eller förnyat certifikat. Lägg till den CA du nu använder.
Quiz
Uppgift
Uppgift Z5.2: Slå upp CAA. Slå upp CAA-recorden för wikipedia.org. Vilka certifikatutfärdare får enligt issue-reglerna utfärda certifikat? Fyll i dem alla.
Uppgift O5.2: Ställ in själv i din övningszon. Skapa i din övningszon på zonens eget namn (@) två CAA-poster:
0 issue ";"0 iodef "mailto:abuse@dnspractice.eu"
Den första regeln betyder: ingen får utfärda certifikat för det här namnet. I övningszonen är det precis rätt: där körs ingen riktig webbplats, så det ska inte heller komma något certifikat, och på så sätt kan ingen missbruka övningszonen för att få ett certifikat. På ditt riktiga domän gör du aldrig så här om du använder https; där anger du de CA:er du faktiskt använder, till exempel 0 issue "letsencrypt.org". Iodef-regeln pekar i övningszonen mot anmälningsadressen för övningsmiljön; på ditt riktiga domän fyller du i din egen adress.
Klicka därefter på Kontrollera.
Uppgift O5.2
Den här uppgiften gör du i din egen övningszon: en riktig DNS-zon på WebOkés namnservrar, bara för dig. Logga in med din e-postadress. Du får en inloggningslänk via mejl och kommer sedan tillbaka till den här lektionen. Vi använder din adress bara för kursen.
Läs mer
Dessa artiklar beskriver stegen i WebOkés kontrollpaneler; i andra paneler fungerar det på liknande sätt.
