CAA record lookup
See which certificate authorities may issue certificates for a domain, and how records on parent names apply.
Results for google.com
NOERROR
1 record found
Everything came back normally. Open any type below to copy its values.
CAA1 of 1
1 record in 1 type.
Cloudflare
Changes reach caches within this time
Turn on DNSSEC in More options to check
CAA1
| Name | TTL | Value |
|---|---|---|
| google.com | 1 d | 0 issue "pki.goog" |
Structured result (JSON) · 679 B
{
"name": "google.com",
"type": "CAA",
"resolver": "cloudflare",
"resolverName": "Cloudflare",
"rcode": "NOERROR",
"ad": false,
"dnssec": false,
"ms": 24,
"records": [
{
"name": "google.com",
"type": "CAA",
"ttl": 86400,
"data": "0 issue \"pki.goog\"",
"fields": {
"flags": 0,
"tag": "issue",
"value": "pki.goog",
"critical": false
}
}
],
"authority": [],
"queries": [
{
"type": "CAA",
"rcode": "NOERROR",
"records": 1,
"ms": 24,
"ad": false
}
],
"ede": [],
"notes": [],
"truncated": false,
"server": "1.1.1.1",
"minTtl": 86400
}What CAA records control
A CAA (Certification Authority Authorization) record is a DNS entry where you name the certificate authorities (CAs) allowed to issue TLS certificates for your domain. Since September 2017, CAs must check CAA before they issue. So a record that names only your chosen CA makes every other CA refuse a mistaken or malicious request for your domain.
| Example record | What it permits |
|---|---|
0 issue "letsencrypt.org" | Only Let's Encrypt may issue certificates for this name. |
0 issuewild "digicert.com" | Only DigiCert may issue wildcard (*.) certificates. |
0 issue ";" | No CA may issue certificates at all. |
0 iodef "mailto:[email protected]" | Where a CA should report a request that broke the policy. |
How to check who may issue
- Look up the name you want a certificate forEnter the exact name, for example
www.example.com. If it has no CAA records, a CA moves up toexample.com, and then to each parent name above it. Repeat the lookup on each parent name until you find records. - Check that your CA is namedYour CA's documentation gives the value to use, such as
letsencrypt.org,digicert.com,sectigo.com,globalsign.comorpki.goog. A managed certificate service may use several issuer names. - Add or change records before you switch CAA renewal with a CA that is not listed will fail. Add the new CA first, then retire the old one.
How CAA is evaluated
- Tree climbing. A CA looks for CAA records on the requested name, then its parent, and so on towards the root. It stops at the first name that has any. Records on
example.comtherefore cover every subdomain without its own set, and records on a subdomain override the parent's for that subdomain. - CNAMEs are followed. If the name is an alias, the CAA lookup goes to the target.
issueandissuewild.issuegoverns all certificates. Ifissuewildis present, it overridesissuefor wildcard certificates only.- No records at all. Any CA may issue. Setting CAA is opt-in protection.
- Flags. The flag value
128(critical) tells a CA that does not understand a tag to refuse to issue. Plain0is used in almost all records. iodef. An email address or URL for violation reports. CAs are not required to send them.
Common problems
- Certificate issuance fails with a CAA error. Your CA is not listed, or the CAA lookup returned SERVFAIL. Many CAs refuse to issue when the DNS answer is broken, so check the nameservers.
- Wildcard certificates fail but normal ones work. An
issuewildrecord names a different CA, or onlyissue ";"is present. - You use two CAs. Add one
issuerecord for each. Several CAA records at one name combine. - Your DNS host rejects the record. Some older panels cannot create the CAA record type (257). Use a provider that supports it, or delegate the name.
- Quotes and syntax. The value is quoted, as in
0 issue "letsencrypt.org". Missing quotes, or extra parameters such as an account URI, can cause errors. - Managed certificates. Cloud and CDN services may use their own CA names, for example
amazon.comandamazontrust.com. Read their documentation before you lock down CAA.
How the lookup works and the standards
LookupOwl asks for type CAA (code 257) at the exact name you enter. It does not climb to parent names for you, so an empty answer on a subdomain does not mean that any CA may issue. A CA would look at the parent domain next, and you should too. CAA is specified in RFC 8659, which replaces RFC 6844, and the CA/Browser Forum Baseline Requirements make checking mandatory. RFC 8657 adds account and validation-method parameters for ACME CAs. To check the certificate a site is actually serving, use the SSL certificate checker.
dig +short CAA example.com
dig example.com CAA +noall +answerQuestions people ask
What is a CAA record?
A CAA record is a DNS record that lists which certificate authorities may issue certificates for your domain. CAs must check it before they issue one. If the CA is not on your list, it has to refuse. It is a cheap extra safeguard against certificates being issued for your name by mistake.
Do I need a CAA record?
No, it is optional. Without one, any CA may issue a certificate for your domain. Adding one is a cheap hardening step, as long as you keep it up to date when you change CA or start using a service that gets certificates for you, such as a CDN.
Does CAA apply to subdomains?
Yes. A CA starts at the requested name and climbs to its parents until it finds records. A record on your root domain therefore covers every subdomain that has no CAA records of its own. A record on a subdomain overrides the parent's for that subdomain.
How do I block all certificate issuance?
Publish a single record, 0 issue ";", on the name. The empty value means that no CA is allowed to issue. It suits a parked domain, or a name that never needs a certificate. Remove it before you request one, or the request will fail.
What value do I use for Let's Encrypt?
Use letsencrypt.org, as in 0 issue "letsencrypt.org". Other CAs publish their own identifiers in their documentation, so copy the value from there. Wildcard certificates from Let's Encrypt are covered by issue unless you add an issuewild record that says otherwise.
Why did my renewal fail after I added CAA?
The CA that handles the renewal was probably not listed. Add its identifier as another issue record, and add an issuewild record if you use wildcard certificates. Also check that your DNS host answers CAA queries cleanly, because a broken answer can block issuance too.
Use it from AI, the API or the command line
Every LookupOwl tool is also a free API and an MCP tool, with no key and no account. This one is dns_lookup. Please be kind to the rate limits.
curl "https://lookupowl.com/api/v1/tools/dns-lookup?q=google.com"claude mcp add --transport http lookupowl https://lookupowl.com/mcp