Cloudflare 525, Cloudflare ile origin web sunucusu arasındaki SSL/TLS handshake başarısız olduğunda oluşur.
Cloudflare 525 SSL Handshake Failed: origin sertifikası, 443 portu, SNI, TLS/cipher, Nginx/Apache vhost ve aralıklı handshake sorunlarını teşhis edin.
Cloudflare 525, Cloudflare ile origin web sunucusu arasındaki SSL/TLS handshake başarısız olduğunda oluşur.
Cloudflare bu hatanın Full veya Full (Strict) SSL/TLS modlarında görüldüğünü belgeliyor.
Resmî nedenler arasında origin'de geçerli SSL sertifikası olmaması, 443/secure portun kapalı olması, SNI desteği ve cipher uyuşmazlığı bulunur.
Cloudflare proxied HTTPS trafiğinde iki ayrı TLS oturumu vardır: ziyaretçi ile Cloudflare edge arasındaki bağlantı ve Cloudflare edge ile origin arasındaki bağlantı. 525 ikinci bacakta oluşur. Bu yüzden ziyaretçinin tarayıcısında görünen edge sertifikasını yenilemek tek başına 525 çözümü değildir.
Bu ayrım `ERR_SSL_VERSION_OR_CIPHER_MISMATCH` gibi edge sertifika sorunlarından 525'i ayırır. 525'te origin servisinin TLS konuşabildiğini, doğru sertifikayı SNI ile verdiğini ve Cloudflare ile ortak cipher/TLS sürümü bulunduğunu kanıtlamak gerekir.
Cloudflare DNS'deki origin IP'ye doğrudan bakın ve sunucuda 443 portunu hangi process'in dinlediğini doğrulayın. Nginx/Apache yeniden başlamamış, container portu hosta publish edilmemiş veya reverse proxy yalnız 80'de çalışıyor olabilir.
Firewall'da 443 açık görünse bile servis dinlemiyorsa handshake olmaz. Tersine servis dinliyor fakat Cloudflare IP aralıkları firewall tarafından engelleniyorsa bağlantı origin'e ulaşamayabilir.
ss -lntp | grep ':443'
curl -vk https://127.0.0.1/
Bir IP üzerinde birden fazla HTTPS vhost varsa SNI kritik hale gelir. `openssl s_client -connect ORIGIN_IP:443 -servername alanadi.com` ile origin'in o hostname için hangi sertifika zincirini verdiğini görün. SNI olmadan yapılan test default vhost sertifikasını gösterebilir ve yanlış sonuca götürebilir.
Sertifikanın sadece varlığı değil, private key eşleşmesi, chain/intermediate sunumu ve vhost eşleşmesi de önemlidir. Nginx'te yanlış `server_name` veya yanlış certificate path, Cloudflare'ın beklemediği handshake davranışı üretir.
openssl s_client -connect ORIGIN_IP:443 -servername example.com -showcerts
Full modunda Cloudflare origin'e HTTPS ile bağlanır ancak sertifikanın güvenilir CA tarafından verilmiş olması veya hostname ile eşleşmesi Full (Strict) kadar katı doğrulanmaz. Full (Strict) geçerli ve hostname'i kapsayan origin sertifikası bekler. Güvenli production yapılandırmasında hedef Full (Strict) olmalıdır.
525 handshake seviyesinde başarısızlıktır; 526 ise Full (Strict) sırasında origin sertifikasının doğrulanamamasıyla daha doğrudan ilişkilidir. Hata kodunu doğru ayırmak gereksiz sertifika değişimini önler.
Origin çok eski TLS/cipher'a zorlanmış veya aşırı dar bir cipher listesi kullanıyorsa Cloudflare ile ortak handshake parametresi kalmayabilir. Aynı şekilde özel güvenlik appliance'ı TLS'i kesiyor ve standard dışı davranıyorsa sorun Nginx'ten önce oluşabilir.
Nginx/Apache config dump ve OpenSSL handshake çıktısını birlikte okuyun. Ama sırf 525 var diye tüm cipher güvenliğini gevşetmek doğru değildir; hangi protokol uyuşmazlığının gerçekten bulunduğunu ölçün.
nginx -T 2>&1 | grep -E 'ssl_protocols|ssl_ciphers|server_name|ssl_certificate'
apachectl -S
Cloudflare aralıklı 525 için origin SSL error loglarını ve Origin Analytics'i incelemeyi önerir. Yalnız bazı istekler başarısızsa sertifika statik olarak yanlış olmaktan ziyade TLS terminator kapasitesi, proxy/load balancer node'u veya belirli backend farklılığı araştırılmalıdır.
Nginx `error.log`, Apache SSL logu veya HAProxy/Traefik logunu Cloudflare hata zamanı ile eşleştirin. Handshake timeout, no shared cipher, bad key share veya connection reset gibi kayıtlar çözüm yönünü belirler.
tail -n 200 /var/log/nginx/error.log
Cloudflare'ı tamamen kapatmak yerine kontrollü test yapın. `curl --resolve alanadi.com:443:ORIGIN_IP https://alanadi.com/ -vk` DNS'i bypass eder ama hostname/SNI'yi korur; bu nedenle gerçek vhost TLS davranışını görmek için çok kullanışlıdır.
Bu test de başarısızsa problem büyük olasılıkla origin TLS katmanındadır. Test origin'de başarılı ancak Cloudflare üzerinden 525 ise Cloudflare kaynak IP erişimi, SNI/cipher davranışı veya aradaki güvenlik cihazları ayrıca incelenmelidir.
curl --resolve example.com:443:ORIGIN_IP https://example.com/ -vk
| Bulgular | Öncelik |
|---|---|
| 443 dinlemiyor | Nginx/Apache/container port |
| OpenSSL yanlış cert döndürüyor | SNI/vhost/server_name |
| Direkt origin başarılı, Cloudflare 525 | Firewall, Cloudflare IP erişimi, TLS policy |
| Yalnız bazı istekler 525 | Load balancer/TLS terminator kapasitesi ve node farkı |
Komutları üretim sistemine uygulamadan önce bağlamı doğrulayın, yedek ve geri dönüş planı oluşturun. DNS, TLS, recovery, Docker veya WordPress ayarlarında birden fazla değişkeni aynı anda değiştirmek kök nedeni görünmez hale getirir.
525 TLS handshake başarısızlığıdır; 526 Full (Strict) sırasında origin sertifikasının doğrulanamamasıyla ilişkilidir.
Hata görünmeyebilir çünkü Cloudflare origin'e HTTP bağlanır; fakat bu origin bağlantı şifrelemesini kaldırır ve kalıcı güvenli çözüm değildir.
Sertifika varlığı tek başına yetmez; yanlış vhost/SNI, kapalı 443, private key sorunu, chain veya TLS/cipher uyumsuzluğu da handshake'i bozabilir.
Sorun hosting, VPS, Docker, Cloudflare, Windows veya WordPress altyapınızda devam ediyorsa hata çıktısı ve mevcut mimariyle birlikte teknik destek kaydı oluşturabilirsiniz.