CAA Records Explained: Certificate Authority Authorization
The small DNS record that closed a structural weakness in certificate trust — and became a universally enforced control within a few years.
CAA records represent a rare thing in web security: a small, simple DNS entry that closes a genuinely structural weakness in how certificate trust worked for the first two decades of the commercial web. This guide covers where CAA came from, exactly how it works, and how it fits into the broader PKI ecosystem.
- Introduction
- Historical Background
- PKI Fundamentals Recap
- The Certificate Authority Ecosystem
- DNS Architecture: Where CAA Fits
- Internal Working: The Issuance Check
- Record Structure in Depth
- Configuration Examples
- Cloud & Shared Hosting Examples
- Enterprise Infrastructure
- Certificate Renewal & CAA
- Security
- Compliance
- Monitoring & Automation
- Comparison & Decision Tables
- Best-Practice Checklist
- Common Mistakes
- Troubleshooting
- Expert Tips
- Daily Practical Use Cases
- Advanced Insights
- FAQ
📝 Introduction
For most of the commercial web's history, the certificate trust model had a quiet structural gap: any of the hundreds of Certificate Authorities trusted by major browsers could issue a valid certificate for any domain, entirely independent of which CA the domain owner actually had a relationship with. CAA records close that gap directly, letting domain owners make an explicit, DNS-enforced statement about exactly who's trusted to vouch for them.
📜 Historical Background
CAA was originally proposed and standardized as RFC 6844 in January 2013, but adoption remained limited and largely optional for years, since nothing required CAs to actually check it. That changed decisively in March 2017, when the CA/Browser Forum — the industry body setting baseline requirements for publicly trusted CAs — voted to make CAA checking mandatory, with enforcement beginning that September. RFC 8659, published in 2019, later refined and clarified the original specification based on real-world implementation experience. This history matters: CAA went from an obscure, rarely-implemented record to a universally enforced control within a few years, driven by industry consensus rather than a single vendor's decision.
🔑 PKI Fundamentals Recap
Public Key Infrastructure relies on a chain of trust: root certificates trusted directly by operating systems and browsers, intermediate certificates signed by those roots, and end-entity (leaf) certificates — the ones actual websites present — signed by intermediates. Trust flows downward through this chain, and the entire system's integrity depends on each Certificate Authority only issuing certificates to parties who genuinely control the domain in question. CAA adds an additional, domain-controlled check to that verification process.
🏢 The Certificate Authority Ecosystem
The CA ecosystem includes both large commercial providers (DigiCert, GlobalSign, Sectigo, and others) and free, automation-first providers like Let's Encrypt, which dramatically expanded HTTPS adoption industry-wide by removing cost as a barrier. This diversity is generally healthy for the web, but it also means any domain owner has, by default, an enormous number of entities technically capable of issuing a certificate for their domain unless explicitly restricted — precisely the scenario CAA exists to constrain.
🏮 DNS Architecture: Where CAA Fits
CAA records live in a domain's ordinary DNS zone, at whatever level the restriction should apply — the zone apex for domain-wide restriction, or a specific subdomain zone for more granular control. Unlike some other DNS-based security mechanisms, CAA required no changes to DNS itself; it's simply a new record type (257) added to the existing resource record framework, which is part of why it could be adopted relatively quickly across a huge, already-deployed DNS infrastructure base.
⚙️ Internal Working: The Issuance Check
| Step | What the CA Does |
|---|---|
| 1 | Receives a certificate signing request for a domain |
| 2 | Queries CAA records for that domain (walking up the tree if not found at the exact name) |
| 3 | Checks whether its own identity appears in an applicable issue (or issuewild) record |
| 4 | Proceeds with issuance only if authorized, or if no CAA record exists at all |
| 5 | Refuses issuance and, if configured, notifies via iodef if not authorized |
If CAA records aren't found at the exact requested name, CAs are required to walk up the DNS tree toward the zone apex, checking each level in turn — meaning a subdomain without its own CAA record inherits restriction from its parent domain automatically, a detail worth understanding when reasoning about coverage across a domain portfolio.
📋 Record Structure in Depth
The flags field, while technically capable of holding any value 0-255, has only one bit currently defined: the critical flag (128). A record marked critical instructs a CA that if it doesn't understand a given tag, it must refuse issuance entirely rather than simply ignoring the unrecognized tag — a forward-compatible mechanism ensuring new, not-yet-widely-supported tags can be treated conservatively by older CA software.
⚙️ Configuration Examples
example.com. 3600 IN CAA 0 issue "letsencrypt.org" example.com. 3600 IN CAA 0 issue "digicert.com" example.com. 3600 IN CAA 0 issuewild ";" example.com. 3600 IN CAA 0 iodef "mailto:security@example.com"
This example authorizes two CAs for standard certificates, explicitly denies all wildcard issuance via the empty issuewild value, and specifies an incident contact — a fairly typical, security-conscious configuration for an organization not using wildcard certificates at all.
☁️ Cloud & Shared Hosting Examples
Shared hosting platforms managing TLS on behalf of many customers typically pre-configure CAA compatibility with their chosen certificate automation partner, though customers who've previously added a more restrictive CAA record themselves can inadvertently block the platform's own automated renewal — a common, easily overlooked support issue worth checking first when automated certificate provisioning mysteriously fails after a customer made unrelated DNS changes.
🏢 Enterprise Infrastructure
Enterprises with formal PKI governance often maintain CAA configuration as a codified security control, reviewed as part of regular security audits and updated deliberately through change management processes rather than ad hoc DNS edits — treating certificate issuance authorization with the same rigor as any other access-control policy.
🔄 Certificate Renewal & CAA
Renewing a certificate from an already-authorized CA requires no CAA changes at all — the existing record already covers it. CAA only becomes relevant to renewal workflows when switching CAs, or when a previously working automated renewal pipeline suddenly starts failing because an unrelated DNS change altered or removed the CAA record authorizing that automation.
🔒 Security
CAA's security value depends partly on DNS integrity itself — without DNSSEC, a sufficiently positioned network attacker could theoretically interfere with the CAA lookup a CA performs during issuance, undermining the protection for that specific issuance attempt. This is a meaningful, if narrow, limitation worth factoring into any organization's broader DNS security posture, especially for domains where certificate misissuance would be particularly damaging.
📋 Compliance
Some industry compliance frameworks and internal security policies now explicitly recommend or require CAA configuration as part of baseline TLS hygiene, reflecting its status as a widely adopted, low-cost, high-value control. Documenting CAA configuration as part of a broader PKI policy is increasingly a reasonable expectation in security audits for organizations handling sensitive data.
🖥️ Monitoring & Automation
Automated monitoring of CAA records alongside Certificate Transparency log monitoring gives a genuinely layered defense — CAA restricting who can issue, CT log monitoring catching anything that somehow issues despite that restriction. Both are relatively low-effort to automate and provide meaningfully complementary coverage.
📊 Comparison & Decision Tables
CAA vs. TLSA (DANE)
| Factor | CAA | TLSA (DANE) |
|---|---|---|
| What it restricts | Which CAs may issue a certificate | Pins specific certificates/keys directly |
| Adoption | Mandatory for all public CAs since 2017 | Optional, less widely deployed |
| Requires DNSSEC for full value | Recommended | Effectively required |
✅ Best-Practice Checklist
- Add CAA records explicitly authorizing only CAs you actually use
- Set issuewild independently, restricting wildcard issuance more tightly if unused
- Include an iodef contact that's actively monitored
- Update CAA immediately as the first step of any CA migration
- Enable DNSSEC for stronger protection against in-transit CAA tampering
❌ Common Mistakes
🔧 Troubleshooting
🎓 Expert Tips
💼 Daily Practical Use Cases
Security engineers configure CAA as standard baseline TLS hygiene for any domain under their management. DevOps teams verify CAA compatibility before onboarding a new certificate automation platform. Compliance teams document CAA configuration as part of broader PKI governance reviews.
🔬 Advanced Insights
RFC 8659 clarified an important nuance from the original RFC 6844: how CAs should handle CAA records containing unknown parameters within an otherwise recognized tag, tightening ambiguity that existed in early implementations. This kind of specification refinement, driven by years of real production deployment experience across a huge, diverse CA ecosystem, reflects how CAA matured from a promising but loosely defined proposal into a precisely specified, universally enforced control.
ToolsNovaHub tools are built and independently maintained with a focus on accurate, no-signup network and security utilities. Spotted an error? Let us know.
📋 Related Tools & Guides Comparison
| Resource | Type | Link |
|---|---|---|
| CAA Lookup | Tool | Open Tool → |
| SSL Certificate Checker | Tool | Open Tool → |
| Restrict SSL Issuers | Guide | Read Guide → |
| Let's Encrypt CAA | Guide | Read Guide → |
| CAA Best Practices | Guide | Read Guide → |