525 Cloudflare Origin: Edge & web server Last updated 13 Oct 2026

Cloudflare Error 525: SSL Handshake Failed

Cloudflare couldn’t complete a TLS handshake with your origin (SSL mode Full / Full strict).

Exact message you may see SSL handshake failed
Seen on: Cloudflare Nginx

Meaning

The origin accepted TCP on 443 but TLS failed: no certificate configured, no SNI support, incompatible ciphers/protocols, or port 443 serving plain HTTP.

Common causes

  • No SSL certificate installed on the origin
  • Origin listens on 443 without TLS
  • Origin doesn’t support SNI or TLS 1.2+
  • Cipher mismatch
  • Firewall dropping TLS from Cloudflare IPs

⚡ Quick fix

  1. Install a certificate on the origin (Cloudflare Origin CA or Let’s Encrypt)
  2. Test: openssl s_client -connect ORIGIN_IP:443 -servername example.com
  3. Enable TLS 1.2/1.3 on the origin
  4. Temporarily switch SSL mode to Flexible only to confirm (not a fix)

Detailed fix by platform

Nginx

  1. Origin TLS with a Cloudflare Origin CA cert:
    nginx
    server {
        listen 443 ssl http2;
        server_name example.com;
        ssl_certificate     /etc/ssl/cloudflare/origin.pem;
        ssl_certificate_key /etc/ssl/cloudflare/origin.key;
        ssl_protocols TLSv1.2 TLSv1.3;
    }

How to diagnose

  1. Origin TLS — openssl s_client against the origin IP
  2. SSL mode — Full / Full (strict)?
  3. Protocols — TLS 1.2+ enabled?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Edge & web server. Errors that are often confused with or caused by this one (click to open):

421 — HTTP 421 Misdirected Request (HTTP)421497 — 400 Bad Request: The plain HTTP request was sent to HTTPS port (Nginx 497) (HTTP)497520 — Cloudflare Error 520: Web Server Returned an Unknown Error (Cloudflare)520521 — Cloudflare Error 521: Web Server Is Down (Cloudflare)521526 — Cloudflare Error 526: Invalid SSL Certificate (Cloudflare)526CERTIFICATE_VERIFY_FAILED — SSL: CERTIFICATE_VERIFY_FAILED / unable to get local issuer certificate (API)CERTIFICATE_VERIFY_FA…ERR_CONNECTION_CLOSED — Chrome: This site can’t be reached — example.com unexpectedly closed the connection. ERR_CONNECTION_CLOSED (Browser)ERR_CONNECTION_CLOSEDERR_SSL_OBSOLETE_VERSION — Chrome: Connection not secure — ERR_SSL_OBSOLETE_VERSION (old TLS 1.0/1.1) (Browser)ERR_SSL_OBSOLETE_VERS…525

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.