Outrings
Security and email authentication

What is a CAA record and do I need one?

A DNS record naming which certificate authorities may issue certificates for your domain. One line, and it closes a real gap.

3 min read
Short answer

A CAA record lists the certificate authorities allowed to issue certificates for your domain. Without one, any public CA may issue for you. Authorities are required to check it, so a single record meaningfully narrows who can produce a valid certificate in your name.

The gap it closes

There are dozens of trusted certificate authorities, and by default every one of them may issue a certificate for your domain. A mistake or a compromise at any single one produces a certificate that browsers accept as valid for your site.

This is not theoretical — there is a long history of mis-issuance incidents. CAA reduces the exposure from "any CA in the world" to "the ones you named".

What it looks like

example.com.  CAA  0 issue "letsencrypt.org"
example.com.  CAA  0 issuewild "letsencrypt.org"
example.com.  CAA  0 iodef "mailto:security@example.com"
TagMeaning
issueThis CA may issue single-name certificates.
issuewildThis CA may issue wildcard certificates. Note that issue alone does not permit wildcards from every CA's perspective, so set both.
iodefWhere to report an attempted violation. Optional and worth having.

To forbid issuance entirely — useful for a domain that serves nothing:

example.com.  CAA  0 issue ";"

How it is evaluated

CAA is resolved by walking up the tree. Checking shop.example.com, a CA looks at that name, then example.com, and stops at the first record set it finds. A record at your apex therefore governs every subdomain automatically, and the absence of a record on a subdomain is normal rather than a fault.

This inheritance matters when reading audit results. A tool reporting "no CAA record" for blog.example.com may be reporting a non-problem, because the apex record already covers it. A good check resolves the way a CA does and says which name the policy came from.

Setting it up

  1. List every CA you currently use — including your CDN, which may issue its own certificates on your behalf.
  2. Add an issue record for each, and issuewild if you use wildcards.
  3. Add an iodef address so you hear about violation attempts.
  4. Verify with dig CAA example.com.
  5. Record the change somewhere, because a future certificate purchase from a different CA will fail until the record is updated — and the error message is rarely obvious.

Common CA identifiers

AuthorityCAA value
Let's Encryptletsencrypt.org
Google Trust Servicespki.goog
DigiCertdigicert.com
Sectigosectigo.com
Amazonamazon.com
Cloudflarepki.goog, letsencrypt.org — check current documentation

Verify against your provider's current documentation before publishing; these identifiers do change, and a wrong one blocks renewals rather than protecting anything.

What our audit reports about this

Every item below is measured directly, not inferred. Run it against your own site and the result names the exact rule or header responsible.

  • Whether a CAA record exists at the audited name, and which authorities it permits.
  • Whether CAA is inherited from the parent zone, naming which zone it came from.
  • Whether the name audited is a zone apex, so records that only exist at an apex are not reported as missing on a subdomain.
  • The certificate actually presented, so you can confirm the issuer matches the policy.

For agents and scripts, the same measurement is at /api/v1/dns?url=yoursite.com — see the API documentation.

Related questions

Will a CAA record break my certificate renewal?

It will if you name the wrong authority or forget one you use. Check the issuer of your current certificate first, and remember your CDN may issue certificates independently of your main CA.

Does CAA stop an attacker with control of my DNS?

No. Someone who controls your DNS can rewrite the CAA record. It protects against mis-issuance by a CA, not against DNS compromise — that is what registrar locks and DNSSEC are for.

Do I need CAA on every subdomain?

No. It is inherited from the closest ancestor with a record, so one set at the apex covers everything beneath it.

Read next

All 50 guides · How every check works · API for agents