Safeguard
Security Guides•

CAA DNS records explained: control which CAs can issue for your domain

CAA records name the certificate authorities allowed to issue for your domain. Learn the syntax, issue vs issuewild, lookup rules and common errors.

Safeguard Security Team
3 min read

A CAA record is a DNS entry that lists which certificate authorities may issue certificates for your domain. CAs must check it before issuing. It will not stop a CA that ignores the rules, but it narrows who can mis-issue for you and costs a few minutes to set up.

Why bother

Without CAA records, Let's Encrypt documentation notes, every public CA may issue for any public domain provided it validates control. That is a wide door for a domain you only ever buy certificates for from one or two providers. CAA closes it to the CAs you name.

Syntax

Each record has the form CAA flags tag value.

  • Flags are usually 0. A value of 128 sets the critical bit, which tells a CA to stop issuing if it does not understand the tag.
  • The tag is usually issue or issuewild.
  • The value is a CA identifier, for example letsencrypt.org.

Example that allows one CA:

example.org CAA 0 issue "letsencrypt.org"

Example that allows one CA for normal names, a different one for wildcards, and restricts the method:

example.org  CAA 0 issue "myca.org;validationmethods=dns-01"
example.org  CAA 0 issuewild "otherca.com"

issue governs the domain and subdomains, including wildcards unless issuewild records exist. issuewild covers wildcard issuance only. The optional validationmethods parameter restricts the challenge types a CA may use, and accounturi can pin issuance to a specific ACME account.

How lookups work

The CA uses the record closest to the requested name. For www.community.example.org it checks that full name, then community.example.org, then example.org, and stops at the first CAA record found. That allows a subdomain to override the parent. Lookups follow CNAMEs. Several records with the same tag add up, so if any one allows issuance, issuance is allowed.

Common errors

Let's Encrypt checks CAA before every issuance, so you can hit CAA problems even with no records. A lookup failure means the CA cannot confirm what the records say. Typical causes per its documentation are SERVFAIL from DNSSEC validation failures, nameservers that answer unknown record types incorrectly, and firewalls that drop queries for unknown types.

Rollout checklist

  1. List every CA that currently issues for your domains, including CDNs and hosting platforms that obtain certificates for you.
  2. Add an issue record for each, then test a renewal in staging if your CA offers one.
  3. Add issuewild only if wildcard rules differ.
  4. Consider locking validation methods and ACME account once automation is stable.
  5. Document the records so the next person does not add a CA without a review.

Quick check

Does CAA protect against a hacked CA?

No. It restricts well behaved CAs. Use certificate transparency monitoring too, covered in what a certificate transparency log is.

Will adding CAA break my CDN certificates?

It can if the CDN's CA is not listed. Add the CA first, then verify renewal.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.