The CAA record lets you specify which Certificate Authorities can issue certificates for your domain.
The CAA (Certificate Authority Authorization) record is a DNS record that lets you publicly declare which Certificate Authorities (CAs) are authorized to issue SSL/TLS certificates for your domain. Without CAA, any CA can theoretically issue a certificate for any domain, which creates a vulnerability: a malicious actor could obtain a fraudulent certificate from a permissive CA.
Since September 2017, all CAs must check CAA records before issuing a certificate (RFC 6844, updated by RFC 8659). If a CAA record exists and doesn't authorize this CA, it must refuse to issue. This simple mechanism significantly reduces the attack surface for certificate-based attacks.
CAA is complementary to DNSSEC: DNSSEC ensures CAA records aren't modified in transit, and CAA ensures only legitimate CAs can issue. Together, they strengthen your PKI security posture.
A CAA record contains three components:
CAA adds an important layer of protection to your PKI:
Here's how to set up CAA step by step:
Here are common configurations:
; Authorize only Let's Encrypt
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issuewild "letsencrypt.org"
example.com. IN CAA 0 iodef "mailto:[email protected]"
; Authorize Let's Encrypt and DigiCert, block wildcards
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issue "digicert.com"
example.com. IN CAA 0 issuewild ";"
; Block all certificate issuance for a subdomain
internal.example.com. IN CAA 0 issue ";"
internal.example.com. IN CAA 0 issuewild ";"
# Query CAA with dig
$ dig CAA example.com +short
0 issue "letsencrypt.org"
0 issuewild "letsencrypt.org"
0 iodef "mailto:[email protected]"
# Via Certificate Transparency logs
$ curl -s "https://crt.sh/?q=example.com&output=json" | jq '.[0]'
The semicolon ";" value explicitly prohibits issuance. This is useful for subdomains that should never have certificates (internal APIs, staging without public access).
Maximize the effectiveness of your CAA records:
Without CAA records, any CA can issue certificates for your domain. This is the default behavior, but it's a security risk for sensitive domains.
Yes, CAA is checked at every issuance, including renewals. Make sure your renewal CA is authorized before adding CAA records.
Yes, add one CAA record per authorized CA. CAs interpret multiple issue records as "OR" logic - any of them can issue.
Yes, CAA is inherited by subdomains without their own CAA records. To override inheritance, add explicit CAA records on the subdomain.
Use the SSL Labs server test or Qualys SSL checker - they verify CAA and warn about issues before they impact production.
Yes, MoniTao monitors your DNS records including CAA. We alert you if CAA records change unexpectedly or are removed.
CAA is a simple yet powerful tool to control SSL certificate issuance for your domain. By restricting which CAs can issue certificates, you significantly reduce the risk of fraudulent certificate attacks.
Start by auditing your current CAs, add restrictive CAA records, enable DNSSEC, and monitor with MoniTao. These layers of defense protect your users and your reputation against certificate-based attacks.
Start free, no credit card required.