CDN certificates · Practical guide
How to check SSL certificates behind a CDN
When a CDN terminates HTTPS, visitors and the origin can use separate TLS connections with different certificates. A successful public certificate check verifies the endpoint it reached. It does not establish that the CDN can verify your origin, or that every edge location serves the same certificate.
Separate a healthy edge certificate from an origin failure
Suppose CheckSSL verifies example.com, but visitors receive a Cloudflare 526 response. The public TLS handshake can succeed while Cloudflare rejects the origin certificate under Full (strict). Renewing the edge certificate would leave that origin problem untouched.
Record which certificate belongs to each connection. The origin might present a separate public certificate or a Cloudflare Origin CA certificate. Match the failure to the corresponding deployment and trust requirements before replacing files or changing an encryption mode.
Visitor -- TLS A --> CDN edge -- TLS B --> origin
TLS A: certificate for example.com verifies
TLS B: origin certificate fails verification
A successful public scan of TLS A does not verify TLS B. - Save the public hostname, scan time, connected IP and certificate verification result.
- Check CDN error details and the configured origin hostname, encryption mode and certificate.
- Repair the failing connection, then verify origin access and the public page separately.
Establish what the public scan actually reached
Confirm that the hostname is proxied. Cloudflare proxied DNS answers normally contain edge addresses; a DNS-only record can take clients directly to the origin. Record apex and www separately because their proxy status, certificate coverage and routing can differ.
CheckSSL selects one resolved address for the connection and reports that address. Its TLS version probes target the same IP. Current scans also discover CAA and attempt leaf-certificate revocation verification through CRLs; these checks do not inspect the private CDN-to-origin connection. Unavailable checks remain unknown, and OCSP and browser CT compliance are not verified.
Keep the SANs, validity dates, issuer and fingerprint with the connection result. A diagnostic certificate obtained after verification fails is evidence for troubleshooting, not a trusted connection. One successful snapshot cannot establish coverage across all IPv4, IPv6 or regional endpoints.
Reference: Cloudflare: proxied and DNS-only records
Test the origin while preserving its expected TLS name
Obtain the origin address and expected TLS hostname from your configuration. Do not assume a public DNS answer identifies the origin. If the CDN overrides origin SNI or the HTTP Host header, reproduce those configured values deliberately. The example assumes both names are example.com.
This command targets a documentation-only IP; substitute an origin you administer. --resolve preserves the URL hostname for SNI and verification, while --noproxy connects directly. For a publicly trusted origin certificate, omit --cacert and use your current CA store. For Origin CA, use the appropriate CA certificate obtained independently from Cloudflare’s official documentation.
The CA file must be a known trust anchor, not the leaf or arbitrary chain downloaded from the failing server. Do not replace verification with -k. Direct access may require an approved network path or configured client authentication; a firewall rejection does not prove a certificate fault.
curl -q -v --max-time 15 --noproxy '*' \
--resolve 'example.com:443:192.0.2.10' \
--cacert /path/to/verified-origin-ca.pem \
'https://example.com/' -o /dev/null
Apply the correct origin trust requirements
Before enabling Cloudflare Full (strict), make sure the origin accepts HTTPS on port 443 and serves a currently valid certificate matching the requested or target hostname. Cloudflare accepts certificates issued by a publicly trusted CA or its Origin CA. Deploy the required chain and test the configured hostname before changing the mode.
Origin CA certificates are intended for Cloudflare-to-origin traffic and are not trusted directly by ordinary browsers. A browser warning during direct access can therefore reflect the wrong trust environment rather than failed Cloudflare validation. Disabling proxying to investigate can expose that warning to visitors; use a controlled origin test instead.
Repair an expired certificate, missing chain or wrong hostname assignment at the origin. Reducing verification or turning off HTTPS hides the requirement rather than completing the repair. Keep renewal and deployment configured for both connections.
Reference: Cloudflare: Full (strict) requirements
Confirm the fix across the routes visitors use
A changed fingerprint alone does not mean failure. CDNs renew certificates and may select different valid certificates for different handshakes. Compare hostname coverage, validity and successful verification first. Record client, IP and time when investigating inconsistent results; do not require every valid endpoint to share one fingerprint.
- Repair the identified edge or origin assignment and use the provider-supported deployment or reload process.
- Repeat the targeted origin check with its intended hostname and CA trust, then request the public page through the CDN.
- Retest supported host aliases and IPv4/IPv6 paths; use additional regional checks when the failure was location-dependent.
- Confirm the origin error is gone and retain separate renewal monitoring for edge and origin certificates.
Reference: Cloudflare: certificate selection and presentation
Keep reading
Related guides
How to check SSL certificate expiry and renewal
Compare the served certificate with a renewed file, interpret expiry warnings and verify deployment with CheckSSL and OpenSSL 3.
Read guide Hostname errorsHow to troubleshoot an SSL certificate name mismatch
Compare certificate SANs, www and wildcard coverage, then check DNS and SNI to find the endpoint serving the wrong certificate.
Read guide Certificate trustSSL certificate chain errors: what to investigate
Inspect the served chain, verify public certificates against trusted roots and fix deployment errors without weakening certificate checks.
Read guide TLS versionsHow to check supported TLS versions
Interpret CheckSSL protocol probes, test TLS 1.2 and TLS 1.3 with OpenSSL 3, and distinguish server rejection from an inconclusive client failure.
Read guide Certificate issuanceCAA records and certificate issuance: how to fix errors
Find the relevant CAA policy, distinguish DNS failures from missing records and authorize the intended certificate provider without breaking renewal.
Read guideTLS certificate reference: trust, names, expiry and protocol checks
Interpret certificate and TLS findings, including unknown verification, received chains, revocation and protocol probes.
Open reference