Skip to content
RU

Cloudflare Error 526: Invalid SSL Certificate on the Origin, and How to Fix It

What it means: In Full (strict) mode Cloudflare could not validate your origin server's certificate.

  1. Inspect the certificate the origin serves
  2. Renew it if expired; add missing hostnames
  3. Serve the full chain with intermediates
  4. Or install a Cloudflare Origin CA certificate

Test your URL now

Runs a full TLS check: handshake, protocol versions, certificate chain, trust and expiry.

Check your site's SSL →

What error 526 means

Cloudflare returns 526 "when these two conditions are true: Cloudflare cannot validate the SSL certificate at your origin web server" and the zone's encryption mode is Full (strict) (Cloudflare: Error 526). The visitor's connection to Cloudflare is fine; the problem is the certificate on the connection from Cloudflare to your server, which visitors never see directly.

Full (strict) requires an origin certificate that is unexpired, "issued by a publicly trusted certificate authority or Cloudflare's Origin CA", and that "contains a Common Name (CN) or Subject Alternative Name (SAN) that matches the requested or target hostname" (Full (strict) mode). Plain Full mode, by contrast, does not validate the origin certificate "in any way". So 526 never appears in Full mode; a broken handshake there gives 525 instead.

Common causes

CauseHow to recognise itFix
Expired certificatenotAfter in the past; renewal job failed silentlyRenew, then reload the web server so it serves the new file
Self-signed or private CA certificateIssuer equals subject, or an internal CAUse a public CA or Cloudflare Origin CA, or upload your CA to the Custom Origin Trust Store
Hostname not in the certificateCertificate for example.com only, while www.example.com or a subdomain is proxiedReissue with every proxied hostname in the SAN list
Incomplete chainServer sends only the leaf, no intermediateServe the full chain file (for example fullchain.pem)
Revoked certificateThe CA revoked it after a key compromise or misissuanceIssue a new certificate with a new key
Wrong certificate chosen by SNIThe origin's default virtual host answers with another site's certificateAdd a server block for the hostname with its own certificate

Cloudflare also lists two special contexts. With Cloudflare Gateway (Zero Trust), 526 means Gateway did not trust the destination's certificate or connection. And Workers subrequests to hostnames outside your zone that are not proxied by Cloudflare always use Full (strict), whatever the zone setting, so a Worker can get 526 from an origin that loads fine in the browser.

How to fix it

  1. Look at the certificate the origin actually serves, with the right SNI, bypassing Cloudflare:
    openssl s_client -connect 203.0.113.10:443 -servername www.example.com -showcerts </dev/null 2>/dev/null \
      | openssl x509 -noout -subject -issuer -dates -ext subjectAltName
    Check the dates, the issuer and that the SAN list contains the proxied hostname.
  2. Check the chain and trust with verification on:
    openssl s_client -connect 203.0.113.10:443 -servername www.example.com -verify_return_error </dev/null 2>&1 | grep -E 'Verify return code|depth'
    Verify return code: 0 (ok) is what Cloudflare needs. A code such as 20 (unable to get local issuer certificate) points to a missing intermediate.
  3. Renew or reissue for every proxied hostname, point the server at the full chain and reload: nginx -t && systemctl reload nginx.
  4. Or install a Cloudflare Origin CA certificate. Cloudflare trusts it for proxied traffic, and it can be valid for many years. Browsers do not trust it, so use it only on hostnames that stay proxied.
  5. If you must keep a self-signed or private CA certificate, upload the CA to the Custom Origin Trust Store so Cloudflare accepts it.
  6. Temporary workaround: switch the zone to Full. It restores the site but stops Cloudflare from checking the origin, so a third party could impersonate it; revert once the certificate is fixed.

Origin CA or a public certificate?

OptionTrusted byGood for
Public CA certificate (for example Let's Encrypt)Cloudflare and browsersOrigins that may also be reached without Cloudflare, or that you may un-proxy later
Cloudflare Origin CA certificateCloudflare onlyOrigins that are only ever reached through Cloudflare's proxy
Self-signed or private CA plus Custom Origin Trust StoreCloudflare, after you upload the CAInternal PKI you already run

The Origin CA route removes renewals as a source of 526, but it ties the hostname to the proxy: if you switch a record to DNS-only, visitors immediately get browser certificate errors. A public certificate keeps both paths working at the cost of automated renewal, which is exactly the job that, when it fails silently, produces the expired-certificate variant of 526. Whichever you pick, monitor the origin certificate's expiry separately from the edge certificate, because Cloudflare renews only its own.

How to confirm the fix

openssl s_client -connect 203.0.113.10:443 -servername www.example.com </dev/null 2>&1 | grep 'Verify return code'
# Verify return code: 0 (ok)
curl -s -o /dev/null -w '%{http_code}\n' https://www.example.com/
# 200

Run the first command for every proxied hostname. To check the origin certificate from outside your network, enter a DNS-only (grey-cloud) hostname of the origin into the SSL checker: for a proxied name it would show Cloudflare's edge certificate instead.

Related errors

CertificateExpiry, issuer, domains (SAN)
ChainIntermediate and root CA validation
TLS ProtocolTLS version and cipher suite
VulnerabilitiesHeartbleed, POODLE, weak ciphers

Why teams trust us

TLS 1.3
supported
Full
CA chain check
3,158
checks in 30 days
30/14/7
days-to-expiry alerts

How it works

1

Enter domain

2

TLS chain verified

3

Expiry date & vulnerabilities

What Does the SSL Check Cover?

SSL/TLS is the encryption protocol that protects data between the browser and server. Our tool analyzes the certificate, chain of trust, TLS version, and knownvulnerabilities.

Certificate Details

Issuer, validity period, signature algorithm, covered domains (SAN), and validation type (DV/OV/EV).

Chain of Trust

Full chain verification: from leaf certificate through intermediates to root CA.

TLS Analysis

Protocol version (TLS 1.2/1.3), cipher suites, Perfect Forward Secrecy (PFS) support.

Expiry Alerts

Set up a monitor — get Telegram and email alerts 30/14/7 days before expiration.

DV vs OV vs EV Certificates

DV (Domain Validation)
  • Confirms domain ownership only
  • Issued in minutes automatically
  • Free via Let's Encrypt
  • Suitable for most websites
  • Most common certificate type
OV / EV
  • Organization (OV) or Extended Validation (EV)
  • Issued in 1-5 business days
  • Costs $50 to $500/year
  • For finance, e-commerce, government sites
  • Increases user trust

Who uses this

DevOps

SSL certificate monitoring

Security

TLS config audit

SEO

HTTPS as ranking factor

E-commerce

customer trust

Common Mistakes

Expired certificateBrowsers block sites with expired SSL. Set up auto-renewal or monitoring.
Incomplete certificate chainWithout intermediate CA, some browsers and bots cannot verify the certificate.
Mixed content on HTTPS siteHTTP resources on an HTTPS page — the browser lock icon disappears, reducing trust.
Using TLS 1.0/1.1Legacy TLS versions have known vulnerabilities. Use TLS 1.2+ or 1.3.
Domain mismatch in certificateThe certificate must cover all site domains, including www and subdomains.

Best Practices

Set up auto-renewalLet's Encrypt + certbot with cron — certificate renews automatically every 60-90 days.
Enable HSTSStrict-Transport-Security header forces browsers to always use HTTPS.
Use TLS 1.3TLS 1.3 is faster (1-RTT handshake) and safer — legacy ciphers removed.
Monitor expiration datesCreate a monitor on Enterno.io — get notified well before expiration.
Verify chain after renewalAfter certificate renewal, confirm that intermediate certificates are installed.

Get more with a free account

SSL certificate monitoring, check history and alerts 30 days before expiry.

Sign up free

Learn more

Sources

Frequently Asked Questions

Why does Cloudflare show 526 when my certificate works in the browser?

The browser sees Cloudflare's edge certificate, not your origin's. The origin certificate is only checked by Cloudflare, so it can be expired or incomplete while the site still looks secure.

Is switching to Full mode a safe fix?

It removes the error but stops Cloudflare from validating the origin certificate, which allows a third party to impersonate the origin. Use it only as a short workaround.

Does Cloudflare accept a Cloudflare Origin CA certificate in Full (strict)?

Yes. Full (strict) accepts certificates from publicly trusted CAs and from Cloudflare Origin CA, which browsers do not trust but Cloudflare does.

Can I use a self-signed certificate with Full (strict)?

Only if you upload it, or its CA, to the Custom Origin Trust Store. Otherwise Cloudflare rejects it with 526.

Why does only my Worker get 526?

Workers subrequests to hostnames outside your zone that are not proxied by Cloudflare always use Full (strict), so they validate a certificate the zone setting would let through.

Try the live tool that powered this guide

Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.