Lock Down CAA for Certificate Authority Authorization Control

Configure CAA DNS records to restrict which Certificate Authorities can issue SSL certificates for your subdomains — preventing unauthorized issuance and strengthening domain security.

Written by Mayank Baswal

Founder of is-cool-me · DNS & Platform Infrastructure

Mayank Baswal maintains the is-cool-me platform and writes technical guides focused on DNS configuration, subdomain infrastructure, SSL troubleshooting, deployment workflows, and platform reliability.

Reviewed by is-cool-me Technical Review

What CAA Records Are and Why They Matter

A Certification Authority Authorization (CAA) record is a DNS entry that specifies which Certificate Authorities are permitted to issue SSL/TLS certificates for your domain. Defined in RFC 8659, CAA records give domain owners a direct mechanism to control certificate issuance at the DNS level. Without CAA records, any CA in the public trust store can issue a certificate for your domain as long as standard validation requirements are met.

For developers hosting projects on is-pro.dev, CAA records provide an essential layer of defense. When someone attempts to obtain a fraudulent certificate for your project subdomain, the issuing CA checks CAA records before proceeding. If your record restricts issuance to a specific authority and another CA tries to issue a certificate, the request is rejected. This single DNS addition dramatically reduces your attack surface.

CAA Record Syntax

CAA records use a format consisting of three parts: a flag, a tag, and a value. The standard syntax follows this pattern:

domain.com.  IN  CAA  <flag> <tag> "<value>"

The three main tags are:

  • issue — Authorizes a specific CA to issue standard certificates. For example, 0 issue "letsencrypt.org" allows only Let's Encrypt.
  • issuewild — Authorizes a CA to issue wildcard certificates specifically, separate from the standard issue tag.
  • iodef — Specifies a URL or email where the CA should report issuance attempts that violate your CAA policy.

The flag field is typically set to 0, the only currently defined value. Any unrecognized flags are ignored by CAs, ensuring forward compatibility.

How to Set CAA Records for is-pro.dev Subdomains

Setting up CAA records on your is-cool-me subdomain is straightforward. Navigate to the DNS management section at dash.is-pro.dev and add new CAA records. For most developers, the configuration looks like this:

yourname.is-pro.dev.  3600  IN  CAA  0 issue "letsencrypt.org"
yourname.is-pro.dev.  3600  IN  CAA  0 issuewild "letsencrypt.org"
yourname.is-pro.dev.  3600  IN  CAA  0 iodef "mailto:admin@yourname.is-pro.dev"

The first record allows Let's Encrypt to issue standard certificates. The second allows wildcard certificates. The third directs CAs to report policy-violating issuance attempts to your email address. A TTL of 3600 seconds provides a reasonable balance between propagation speed and DNS query efficiency.

Restricting to Specific CAs

Multiple authorities can be authorized simultaneously by publishing separate issue records. For example, if your project uses Let's Encrypt for staging and DigiCert for production:

0 issue "letsencrypt.org"
0 issue "digicert.com"

Common CA domain values include letsencrypt.org, digicert.com, sectigo.com, amazon.com, and google.com. An incorrect identifier will prevent that CA from issuing certificates for your domain.

Restricting CAs is especially valuable for organizations that need compliance guarantees. If your security policy requires certificates from a specific vendor with audit trails, CAA records enforce that requirement at the DNS level.

Wildcard Certificate Controls with issuewild

The issuewild tag operates independently from issue. If you publish an issue record for Let's Encrypt but omit issuewild, standard certificates will be issued normally while wildcard requests will be denied.

For subdomains that only need single-name certificates, deliberately omit the issuewild tag to prevent wildcard issuance. This is a security best practice because wildcard certificates expand the scope of a single compromised key — if your wildcard private key is exposed, every subdomain under that wildcard becomes vulnerable.

Conversely, if your deployment relies on wildcard certificates for dynamic subdomains, ensure the issuewild tag explicitly permits your CA. Without it, automated certificate provisioning for wildcard domains will fail silently during validation, causing unexpected downtime.

Monitoring Unauthorized Issuance Attempts with iodef

The iodef tag provides automated incident reporting. When a CA encounters a CAA record that prohibits issuance, it may send a report to the URL or email specified in the iodef value, containing details about the attempted issuance.

Setting up iodef requires adding a single CAA record:

0 iodef "mailto:security@yourname.is-pro.dev"

You can also use an HTTPS URL to point to a webhook or logging endpoint that processes incoming reports programmatically. This enables automated alerting when unauthorized issuance is detected.

Common Mistakes and How to Verify CAA Records

The most frequent mistake is publishing CAA records that inadvertently block legitimate issuance. If your hosting platform uses a CA not listed in your CAA records, certificate renewal will fail. Always verify which CA your platform uses before restricting CAA records.

Another error is forgetting that CAA records on a parent domain affect all subdomains. A CAA record on is-pro.dev affects every subdomain under it. On is-cool.me, subdomain-level CAA records give you the flexibility to control issuance per project.

To verify your CAA records, use the dig command:

dig yourname.is-pro.dev CAA +short
# Expected output:
# 0 issue "letsencrypt.org"
# 0 issuewild "letsencrypt.org"
# 0 iodef "mailto:admin@yourname.is-pro.dev"

You can also use the +trace flag to follow the full resolution path and confirm your authoritative nameservers are returning the correct values. Online tools like the SSL Labs CAA Record Checker can also validate your configuration.

Integration with Cloudflare and Other DNS Providers

If you manage DNS through Cloudflare, CAA records are supported directly in the DNS management panel. Navigate to your domain, click Add Record, select CAA as the type, and fill in the flag, tag, and value fields. Cloudflare also offers automatic CAA management through their Advanced Certificate Manager product.

Other providers like AWS Route 53, Google Cloud DNS, and DigitalOcean all support CAA records through their dashboards and APIs. When using infrastructure-as-code tools like Terraform, CAA records can be declared alongside other DNS records for consistent, version-controlled configuration.

For is-cool-me subdomains, simply use the CAA record type in the DNS records section. The platform propagates changes quickly, and you can verify the records within minutes using dig against a public resolver like 8.8.8.8.

Conclusion

CAA records are a lightweight but powerful addition to your DNS security posture. By restricting which Certificate Authorities can issue certificates for your subdomains, you prevent unauthorized issuance, gain visibility into policy-violating attempts through iodef reporting, and maintain granular control over wildcard certificate scope. Combined with regular monitoring and proper verification, CAA records close a security gap that many developers overlook.

FAQ

What happens if no CAA record exists for my domain?

Without a CAA record, any CA in the public trust store can issue a certificate for your domain, provided they pass standard domain validation. Adding a CAA record restricts issuance to only the CAs you explicitly authorize.

Can I set CAA records for a specific subdomain only?

Yes. CAA records can be placed on any level of the DNS hierarchy. A CAA record on api.yourname.is-pro.dev applies only to that subdomain and its children, overriding any records set at the parent domain level.

Do CAA records affect existing certificates?

No. CAA records only influence new certificate issuance requests. Existing certificates remain valid until they expire regardless of any CAA changes you make afterward.

How quickly do CAA records take effect?

CAA records propagate like any other DNS change, typically within minutes on is-cool-me. However, CAs may cache CAA results for up to the TTL value you set. Plan CAA changes at least one hour before your next certificate renewal window.

Can multiple CAA records exist for the same domain?

Yes. You can publish multiple CAA records with different tags and values. CAs evaluate all applicable CAA records and will only issue a certificate if at least one matching issue or issuewild record permits it.

Share this article Share on X Share on LinkedIn