Cloudflare Custom Hostnames Checker for SaaS Domains
Check a Cloudflare for SaaS custom hostname from your browser. Reads its CNAME, ownership TXT, DCV records, CAA and certificates, and explains each error.
- Asks Cloudflare DNS
- Falls back to Google DNS
- Searches crt.sh
Checked
01Tool
Tool
Enter your customer's hostname and the CNAME target you gave them. The checker reads the records Cloudflare validates and explains each result.
Explain a Cloudflare error
02Guide
How it works
How a custom hostname goes live
Cloudflare for SaaS runs two checks on every custom hostname, and they use different records. Hostname validation proves your customer controls the name. It passes when the hostname is a CNAME to your SaaS zone, or, before the customer changes DNS, when the TXT record from ownership_verification sits at _cf-custom-hostname.<hostname>. It sets the hostname's status.
Certificate validation, or DCV, proves the same thing to the certificate authority, and it sets ssl.status. Cloudflare treats a hostname as ready when both read active and the hostname's DNS points at your target (Cloudflare docs).
The CNAME, the apex and O2O
Your customer adds a CNAME from their hostname to your CNAME target, such as customers.yoursaas.com, and your target is a proxied record that points at your fallback origin. The checker follows the chain and says whether it reaches your target, and whether your target answers with Cloudflare's addresses.
Some setups hide the CNAME. At the apex of a zone most DNS providers refuse a CNAME, and those that offer CNAME flattening answer with the target's addresses instead. A customer whose own domain is on Cloudflare can proxy the CNAME, which Cloudflare calls O2O, and public DNS then shows only Cloudflare addresses. The checker can't see past either, so it says so rather than guessing. For apex domains Cloudflare also offers apex proxying, where customers add A records for IP addresses assigned to your account (Cloudflare docs).
Three ways to validate the certificate
Automatic HTTP validation needs nothing from your customer: once the hostname points at your target, Cloudflare serves the certificate authority's token itself. It can't cover a wildcard, and it can't finish before the DNS change.
TXT validation puts each token from ssl.validation_records at _acme-challenge.<hostname>. It works before the DNS change, but the tokens expire, sooner for some certificate authorities than others, so a customer who waits too long needs new ones. A wildcard certificate needs two tokens.
Delegated DCV replaces the tokens with one CNAME, from _acme-challenge.<hostname> to <hostname>.<your delegation hostname>, which Cloudflare shows on the Custom Hostnames page. Cloudflare then places the tokens for every renewal. An existing _acme-challenge TXT record stops it from working, so the checker looks for one (Cloudflare docs).
CAA records
A CAA record names the certificate authorities allowed to issue for a domain. The authority reads CAA at the hostname, following any CNAME, and climbs one label at a time until a name has records; that set decides (RFC 8659). The checker walks the same path and tests the set against the three authorities Cloudflare uses for custom hostnames. When it blocks one, it writes the records that would allow it.
03Rates
The numbers it uses
| Item | Limit | Source |
|---|---|---|
| Custom hostnames included Free, Pro and Business | 100 | developers.cloudflare.com |
| Each additional hostname Free, Pro and Business | $0.10 | developers.cloudflare.com |
| Custom hostnames, at most Free, Pro and Business | 50,000 | developers.cloudflare.com |
| Apex proxying | Enterprise add-on | developers.cloudflare.com |
| Wildcard custom hostnames | Enterprise | developers.cloudflare.com |
| Hostname validation attempts | 75 over 7 days | developers.cloudflare.com |
| A Moved hostname is deleted after | 7 days | developers.cloudflare.com |
| Certificate validity | 90 days | developers.cloudflare.com |
| Renewal opens before expiry | 30 days | developers.cloudflare.com |
| Certificates issued | 15 a minute | developers.cloudflare.com |
| Common Name length, at most | 64 characters | developers.cloudflare.com |
| Item | Value | Source |
|---|---|---|
| Google Trust Services, DCV token lifetime | 14 days | developers.cloudflare.com |
| Google Trust Services, CAA value | pki.goog; cansignhttpexchanges=yes | developers.cloudflare.com |
| Let's Encrypt, DCV token lifetime | 7 days | developers.cloudflare.com |
| Let's Encrypt, CAA value | letsencrypt.org | developers.cloudflare.com |
| SSL.com, DCV token lifetime | 14 days | developers.cloudflare.com |
| SSL.com, CAA value | ssl.com | developers.cloudflare.com |
04Questions
Questions
- Why does Cloudflare say the custom hostname does not CNAME to this zone?
- Cloudflare looked up the hostname and found no CNAME to your SaaS zone, and your zone has no apex proxying. Usually the customer hasn't added the record yet, pointed it at the wrong name, or uses a DNS provider that hides the CNAME behind flattening. The checker shows where the hostname points now. Publishing the ownership TXT record lets Cloudflare validate the hostname before the CNAME is in place, except when the customer's own domain is on Cloudflare too.
- Can my customers use an apex domain as a custom hostname?
- Most DNS providers don't allow a CNAME at the apex. A customer whose provider offers CNAME flattening, as Cloudflare does, can still add one, but it answers with addresses, so public DNS shows A records instead of the CNAME. Otherwise Cloudflare's answer is apex proxying, where the customer adds A records for IP addresses Cloudflare assigns your account. It's an Enterprise add-on.
- What's the difference between hostname validation and certificate validation?
- Hostname validation proves the customer controls the hostname, through the CNAME or the _cf-custom-hostname TXT record, and moves the hostname's status to Active. Certificate validation proves it to the certificate authority, through HTTP, TXT tokens at _acme-challenge or a delegation CNAME, and moves ssl.status to Active. The hostname serves your app only once both are Active and its DNS points at your target.
- Which CAA records does Cloudflare for SaaS need?
- None, if the customer publishes no CAA records. If they do, the records must allow the CA that issues the hostname's certificate, and Cloudflare uses Google Trust Services, Let's Encrypt and SSL.com for custom hostnames. A CA reads CAA at the hostname first, following any CNAME, then at each name above it, and the first name with records decides. The values to publish are in the table on this page.
- How much do Cloudflare custom hostnames cost?
- Free, Pro and Business zones include some custom hostnames and charge a flat fee for each one past that, up to a ceiling, while Enterprise pricing is set by contract. The table on this page has the current numbers. Every hostname counts until you delete it, including ones still waiting for validation.
- Why does the checker search crt.sh?
- crt.sh searches the public Certificate Transparency logs, where publicly trusted certificates are recorded. Its results show whether a certificate for the hostname exists, who issued the latest one and when it expires. crt.sh is often slow, and when it doesn't answer, the DNS checks still stand on their own.
05Sources
Sources
Every fact on this page was read from these pages on .
- Cloudflare for SaaS docs, Configuring Cloudflare for SaaSdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ start/ getting-started/ - Cloudflare for SaaS docs, Plansdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ plans/ - Cloudflare for SaaS docs, Quotas and billingdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ quotas-and-billing/ - Cloudflare for SaaS docs, Create custom hostnamesdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ domain-support/ create-custom-hostnames/ - Cloudflare for SaaS docs, Hostname validationdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ domain-support/ hostname-validation/ - Cloudflare for SaaS docs, Pre-validationdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ domain-support/ hostname-validation/ pre-validation/ - Cloudflare for SaaS docs, Real-time validationdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ domain-support/ hostname-validation/ realtime-validation/ - Cloudflare for SaaS docs, Backoff scheduledevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ domain-support/ hostname-validation/ backoff-schedule/ - Cloudflare for SaaS docs, Validation statusdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ domain-support/ hostname-validation/ validation-status/ - Cloudflare for SaaS docs, Error codesdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ domain-support/ hostname-validation/ error-codes/ - Cloudflare for SaaS docs, Validate certificatesdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ security/ certificate-management/ issue-and-validate/ validate-certificates/ - Cloudflare for SaaS docs, HTTP validationdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ security/ certificate-management/ issue-and-validate/ validate-certificates/ http/ - Cloudflare for SaaS docs, TXT validationdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ security/ certificate-management/ issue-and-validate/ validate-certificates/ txt/ - Cloudflare for SaaS docs, Delegated DCVdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ security/ certificate-management/ issue-and-validate/ validate-certificates/ delegated-dcv/ - Cloudflare for SaaS docs, Troubleshooting certificate validationdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ security/ certificate-management/ issue-and-validate/ validate-certificates/ troubleshooting/ - Cloudflare for SaaS docs, Renew certificatesdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ security/ certificate-management/ issue-and-validate/ renew-certificates/ - Cloudflare for SaaS docs, Token validity periodsdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ reference/ token-validity-periods/ - Cloudflare for SaaS docs, Troubleshootingdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ reference/ troubleshooting/ - Cloudflare for SaaS docs, Custom hostname status codesdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ reference/ status-codes/ custom-hostnames/ - Cloudflare for SaaS docs, Apex proxyingdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ start/ advanced-settings/ apex-proxying/ - Cloudflare for SaaS docs, How O2O worksdevelopers.cloudflare.com/
cloudflare-for-platforms/ cloudflare-for-saas/ saas-customers/ how-it-works/ - Cloudflare SSL/TLS docs, Certificate authoritiesdevelopers.cloudflare.com/
ssl/ reference/ certificate-authorities/ - Cloudflare DNS docs, CNAME flatteningdevelopers.cloudflare.com/
dns/ cname-flattening/ - Cloudflare IP rangescloudflare.com/
ips/ - Cloudflare blog, Introducing DCV Delegationblog.cloudflare.com/
introducing-dcv-delegation/ - RFC 8659, DNS Certification Authority Authorization (CAA) Resource Recordrfc-editor.org/
rfc/ rfc8659 - crt.sh, Certificate Searchcrt.sh/
- Cloudflare 1.1.1.1 docs, DNS over HTTPS with JSONdevelopers.cloudflare.com/
1.1.1.1/ encryption/ dns-over-https/ make-api-requests/ dns-json/ - Google Public DNS, JSON API for DNS over HTTPSdevelopers.google.com/
speed/ public-dns/ docs/ doh/ json
Found something out of date? Tell us.
Nuxter
Building a SaaS on Nuxt?
Nuxter is a Nuxt 4 starter kit for Cloudflare Workers, with Postgres through Hyperdrive, Queues for background jobs and wrangler cron triggers. Put Cloudflare for SaaS in front of it when your customers bring their own domains.