ERR_SSL_PROTOCOL_ERROR Çözümü: Chrome, Android, Localhost
Önemli bilgi
ERR_SSL_PROTOCOL_ERROR, sayfa yüklenmeden önce güvenli (TLS) el sıkışmasının bozulduğu anlamına gelir. Localhost'ta bu hemen her zaman, yalnızca HTTP konuşan bir geliştirme sunucusunda https:// açtığınız demektir: http:// kullanın veya HTTPS'i açın. Herkese açık bir sitede Gizli pencerede ve başka bir ağda deneyin: yalnızca sizin cihazınızda hata çıkıyorsa nedeni çoğunlukla antivirüsün HTTPS taraması, bir VPN veya proxy ya da siteyi filtreleyen bir ağdır; her ziyaretçide çıkıyorsa sunucunun TLS kurulumudur.
Şimdi kontrol edin

Okumaya başlayın
- ERR_
SSL_ PROTOCOL_ ERROR Nedir? - ERR_
SSL_ PROTOCOL_ ERROR Nasıl Görünür? - ERR_
SSL_ PROTOCOL_ ERROR'un Nedenleri - Localhost'ta ERR_
SSL_ PROTOCOL_ ERROR (Geliştiriciler İçin) - ERR_
SSL_ PROTOCOL_ ERROR Nasıl Düzeltilir (Kullanıcılar İçin) - Çözüm 1: Gizli Pencereyi ve Başka Bir Ağı Deneyin
- Çözüm 2: Antivirüsün SSL/HTTPS Taramasını Kapatın
- Çözüm 3: VPN veya Proxy'yi Kapatın
- Çözüm 4: Tarayıcı Uzantılarını Kapatın
- Çözüm 5: Tarayıcı Önbelleğini ve Çerezleri Temizleyin
- Çözüm 6: QUIC'i (HTTP/3) Eleyin
- Çözüm 7: Tarayıcınızı Güncelleyin
- Çözüm 8: DNS Önbelleğini Temizleyin
- Çözüm 9: Sistem Tarih ve Saatini Kontrol Edin
- Çözüm 10: SSL Durumunu Temizleyin (Windows)
- Düzeltme 11: Ağ Ayarlarını Sıfırlayın (Son Çare)
- ERR_
SSL_ PROTOCOL_ ERROR Nasıl Düzeltilir (Web Sitesi Sahipleri İçin) - SSL Sertifikanızı Kontrol Edin
- TLS 1.2 ve TLS 1.3'ü Etkinleştirin
- Tam Sertifika Zincirini Yükleyin
- HSTS Yapılandırmasını Kontrol Edin
- Sunucu Yapılandırmasını Doğrulayın
- Android'de ERR_
SSL_ PROTOCOL_ ERROR - iPhone ve iPad'de ERR_
SSL_ PROTOCOL_ ERROR - Diğer Tarayıcılarda ERR_
SSL_ PROTOCOL_ ERROR - İlgili SSL/TLS Hata Kodları
- Sıkça Sorulan Sorular
ERR_SSL_PROTOCOL_ERROR Nedir?
ERR_SSL_PROTOCOL_ERROR, güvenli bağlantının TLS el sıkışması sırasında bozulduğu ve tarayıcınızın hiçbir şey yükleyemediği anlamına gelir. Chrome ve Edge bunu "Bu site güvenli bağlantı sağlayamıyor. example.com geçersiz bir yanıt gönderdi." diye gösterir. Adres localhost ise geliştirme sunucunuz büyük olasılıkla düz HTTP konuşuyordur: bunun yerine http://localhost açın (aşağıdaki geliştirici bölümüne bakın).
Her HTTPS bağlantısı bir TLS el sıkışmasıyla başlar: tarayıcı ve sunucu bir protokol sürümü (TLS 1.2 veya 1.3) ile şifreler üzerinde anlaşır ve sertifikaları değiş tokuş eder. ERR_SSL_PROTOCOL_ERROR bu pazarlığın çöktüğü anlamına gelir: karşı taraf geçerli TLS olmayan bir şeyle yanıt vermiş ya da el sıkışmayı tarayıcının sınıflandıramadığı bir biçimde reddetmiştir.
Hata, herhangi bir HTTP isteği gönderilmeden önce oluşur; bu yüzden bir HTTP durum kodu değildir. Chromium'un hata listesi onu -107 numarasıyla ve tek satırla tanımlar, "An SSL protocol error occurred": bozuk bir el sıkışma için genel bir hata; "ortak protokol sürümü veya şifre yok" diyen özel -113 hatasından farklıdır.
Sitenin TLS yapılandırmasını şimdi kontrol edin
ERR_SSL_PROTOCOL_ERROR Nasıl Görünür?
Chrome ve diğer Chromium tabanlı tarayıcılar bu hatayı tam sayfa bir uyarı olarak, "Bu site güvenli bağlantı sağlayamıyor" mesajıyla gösterir. Altında belirli hata kodunu görürsünüz. Karşılaşabileceğiniz yaygın varyasyonlar şunlardır.
- localhost sent an invalid response (Türkçe arayüzde "localhost geçersiz bir yanıt gönderdi") — geliştiricilerin gördüğü hali: yalnızca düz HTTP konuşan yerel bir sunucuda
https://açılmıştır - ERR_SSL_PROTOCOL_ERROR — Chrome'un mesajın altında küçük puntoyla yazdığı hata kodu
- net::ERR_SSL_PROTOCOL_ERROR — Chrome DevTools konsolunda görünen tam iç hata kodu
- Bu site güvenli bağlantı sağlayamıyor — Chrome'un kullanıcıya gösterdiği başlık mesajı
- [alan adı] geçersiz bir yanıt gönderdi — Chrome'un başlığın altında gösterdiği ayrıntılı hata metni
- Tüm tarayıcılarda ERR_SSL_PROTOCOL_ERROR — hata Chrome, Edge, Brave ve Opera'da aynı anda görünüyorsa (tarayıcıya özgü bir hata değil, sunucu tarafında veya sistem genelinde bir sorun olduğunu gösterir)
ERR_SSL_PROTOCOL_ERROR'un Nedenleri
Bu hatanın hem istemci tarafında (cihazınız) hem sunucu tarafında (web sitesi) nedenleri vardır. Sorunun hangi tarafta olduğunu bulmak onu çözmenin ilk adımıdır. Hata her web sitesinde çıkıyorsa sorun sizin tarafınızdadır. Yalnızca belirli bir sitede çıkıyorsa sorun büyük olasılıkla sunucu tarafındadır.
- HTTP konuşan bir sunucuya gönderilen HTTPS — en çok aranan durum: bir geliştirme sunucusunda
https://localhostveya 443. portu TLS için ayarlanmamış bir site. Tarayıcı el sıkışmayı başlatır, karşılığında düz metin alır ve Chrome bunu "geçersiz bir yanıt gönderdi" diye bildirir. - Antivirüsün SSL/HTTPS taraması — HTTPS'i yakalayan güvenlik yazılımları (Avast, Kaspersky, Bitdefender, ESET) el sıkışmanın araya girer ve onu bozabilir; hem de tüm sitelerde aynı anda.
- VPN veya proxy müdahalesi — HTTPS trafiğini inceleyen VPN'ler ve kurumsal proxy'ler, özellikle ağ değiştirdikten hemen sonra el sıkışmayı bozabilir.
- Siteyi filtreleyen bir ağ — İSS, okul, iş yeri ve ulusal filtreler ile DNS tabanlı engelleyiciler, engelledikleri sitelerin el sıkışmasını bilerek bozar. Belirtisi: site mobil veride veya başka bir Wi-Fi'de açılır.
- Sunucuda bozuk TLS kurulumu — 443. portun düz HTTP ile yanıt vermesi (TLS açılmamış bir 443 server bloğu) ya da 443. portu başka bir programın dinlemesi.
- Tarayıcı uzantıları — HTTPS isteklerini yeniden yazan gizlilik, reklam engelleme ve güvenlik eklentileri el sıkışmaya karışabilir.
- Eski tarayıcı durumu — sunucuyla artık uyuşmayan önbellekteki oturum verileri.
- Çoğu zaman bununla karıştırılır — TLS 1.0 veya 1.1'de takılı kalmış bir sunucu ERR_SSL_VERSION_OR_CIPHER_MISMATCH ("Desteklenmeyen protokol") gösterir; süresi dolmuş, alan adı yanlış veya kendinden imzalı bir sertifika ya da yanlış bir saat sertifika hatası (NET::ERR_CERT_…) gösterir; bir QUIC (HTTP/3) sorunu ise ERR_QUIC_PROTOCOL_ERROR gösterir. Bkz. ERR_SSL_VERSION_OR_CIPHER_MISMATCH ve "Bağlantınız gizli değil".
Localhost'ta ERR_SSL_PROTOCOL_ERROR (Geliştiriciler İçin)
localhost sent an invalid response. ERR_SSL_PROTOCOL_ERROR hemen her zaman, yalnızca düz HTTP konuşan bir geliştirme sunucusunda https://localhost açtığınız anlamına gelir. Tarayıcı bir TLS el sıkışması başlatır, sunucu sıradan HTTP metniyle yanıt verir ve Chrome bu yanıtı geçersiz sayar. Firefox aynı hatayı SSL_ERROR_RX_RECORD_TOO_LONG olarak bildirir.
- Sunucunun yazdırdığı adresi kullanın —
https://localhost:3000adresinihttp://localhost:3000yapın. Next.js, Vite, React, Django, Rails ve Flask geliştirme sunucuları HTTPS'i siz açmadıkça HTTP sunar - Portu kontrol edin — portsuz
https://localhost443. port demektir. Uygulamanız 3000 veya 5173'te çalışıyorsa istek başka bir programa ulaşır ya da hiçbir yere - Chrome sürekli https://'e geçiyor — aynı portta çalışan eski bir uygulamadan kalan önbellekteki bir yönlendirme bunu yapabilir: önbelleğe alınan resimleri ve dosyaları temizleyin veya Gizli pencerede deneyin. (132'den önceki Chrome sürümleri localhost için bir HSTS kaydını da tutabilirdi; bunu
chrome://net-internals/#hstsadresindeki Delete domain security policies bölümünden silersiniz) - Yerelde HTTPS gerekiyorsa (OAuth geri çağrıları, güvenli çerezler) —
next dev --experimental-httpskomutu mkcert ile yerel olarak güvenilen bir sertifika oluşturur; Vite sertifika seçenekleriniserver.httpsiçinde alır, hızlı bir kendinden imzalı sertifika için@vitejs/plugin-basic-sslkullanılır; başka her yerdemkcert -install && mkcert localhost 127.0.0.1sunucunuzun yükleyebileceği dosyalar üretir - Kendinden imzalı sertifika farklı bir hata verir — bu değil,
NET::ERR_CERT_AUTHORITY_INVALID. Gelişmiş → localhost sitesine ilerle (güvenli değil) yolunu izleyin ya da daha iyisi, mkcert sertifikası kullanın (eskiallow-insecure-localhostbayrağının süresi doldu)
ERR_SSL_PROTOCOL_ERROR Nasıl Düzeltilir (Kullanıcılar İçin)
Önce 1. çözümle başlayın: iki dakikada sorunun tarayıcınızda mı, cihazınızda veya ağınızda mı, yoksa sitede mi olduğunu söyler. Sonra listede aşağı doğru ilerleyin.
Çözüm 1: Gizli Pencereyi ve Başka Bir Ağı Deneyin
Gizli pencere çerezsiz, önbelleksiz ve uzantısız başlar (orada izin vermediyseniz). Siteyi bir Gizli pencerede açın (Chrome ve Edge'de Ctrl+Shift+N, Firefox'ta Ctrl+Shift+P), ardından telefonunuzun mobil verisi gibi başka bir ağda deneyin.
Gizli pencerede açılıyorsa neden tarayıcınızdadır: bir uzantı veya eski veriler (4. ve 5. çözümler). Yalnızca başka bir ağda açılıyorsa ağınız veya bir VPN ya da proxy siteyi filtreliyor veya araya giriyordur (3. çözüm). Her yerde başarısız oluyorsa siteyi bir SSL Sorgulama aracıyla sınayın: o da başarısız olursa yalnızca site sahibi düzeltebilir.
Çözüm 2: Antivirüsün SSL/HTTPS Taramasını Kapatın
Birçok antivirüs programı (Avast, Kaspersky, Bitdefender, ESET, Norton), şifreli bağlantıları ortadaki adam proxy'si gibi davranarak yakalayan bir "HTTPS taraması" veya "SSL denetimi" özelliği içerir. Bir sitenin el sıkışmasını yanlış işlediğinde bilgisayardaki tüm tarayıcılar o sitede başarısız olur.
Antivirüsünüzde Web Shield, HTTPS Scanning, SSL Scanning veya Encrypted connections scanning adlı ayarları bulun ve geçici olarak kapatın. Hata gidiyorsa ilgili alan adını antivirüsünüzün istisna listesine ekleyebilirsiniz.
Çözüm 3: VPN veya Proxy'yi Kapatın
VPN'ler ve HTTP proxy'leri tarayıcınızla web sunucusu arasında durur. Bazı VPN'ler HTTPS trafiğini inceler ya da bağlantıları TLS'i bozuk sunuculardan geçirir. Kurumsal proxy'ler çoğu zaman TLS el sıkışmalarını bozabilen SSL denetimi (antivirüsün HTTPS taramasına benzer) kullanır.
VPN bağlantınızı geçici olarak kesin ve siteyi yüklemeyi deneyin. VPN olmadan çalışıyorsa sorun VPN'inizin SSL bağlantılarını işleyişindedir. Başka bir VPN sunucusu deneyin veya VPN sağlayıcınızla iletişime geçin.
Çözüm 4: Tarayıcı Uzantılarını Kapatın
VPN ve proxy uzantıları ile güvenlik eklentileri gibi trafiği filtreleyen veya yönlendiren uzantılar güvenli bağlantıları bozabilir.
chrome://extensions/ adresine gidin, tüm uzantıları kapatın ve sayfayı yenileyin. Hata gidiyorsa sorumlu olanı bulmak için uzantıları tek tek yeniden açın.
Çözüm 5: Tarayıcı Önbelleğini ve Çerezleri Temizleyin
Eski çerezler veya önbellekteki veriler ara sıra yolu tıkar; temizlemek bir dakika sürer.
- Adım 1: Tarama verilerini sil penceresini açmak için
Ctrl+Shift+Deletetuşlarına basın (Mac:Cmd+Shift+Delete) - Adım 2: Zaman aralığı için Diğer → Tüm zamanlar seçeneğini belirleyin
- Adım 3: Çerezler ve diğer site verileri ile Önbelleğe alınan resimler ve dosyalar kutularını işaretleyin
- Adım 4: Verileri sil'e tıklayın (oturumunuz kapalıysa Bu cihazdan sil) ve Chrome'u yeniden başlatın
Tek bir site için chrome://settings/content/all adresine gidin, alan adını arayın ve verilerini silin.
Çözüm 6: QUIC'i (HTTP/3) Eleyin
Chrome, QUIC'i (UDP üzerinden HTTP/3) normal bir TCP bağlantısıyla birlikte dener ve QUIC başarısız olunca TCP'ye döner; bu yüzden QUIC nadiren ERR_SSL_PROTOCOL_ERROR'a yol açar. Sayfa veya DevTools bunun yerine ERR_QUIC_PROTOCOL_ERROR gösteriyorsa QUIC'i kapatmak çözümdür (bkz. ERR_QUIC_PROTOCOL_ERROR):
- Adım 1: Adres çubuğuna
chrome://flags/#enable-quicyazın - Adım 2: Experimental QUIC protocol seçeneğini bulun
- Adım 3: Default ayarını Disabled olarak değiştirin
- Adım 4: Chrome'u yeniden başlatmak için Yeniden başlat'a tıklayın
QUIC kapalıyken sayfalar yine yüklenir; TCP üzerinden HTTP/2 ile. Ağ veya site düzeldikten sonra tekrar açın.
Çözüm 7: Tarayıcınızı Güncelleyin
Eski tarayıcı sürümlerinde modern sitelerin beklediği TLS özellikleri ve şifreler olmayabilir; güncellemeler TLS hatalarını giderir.
Chrome'u güncelleyin: chrome://settings/help adresine gidin veya Menü → Yardım → Google Chrome Hakkında'ya tıklayın. Chrome güncellemeleri otomatik indirir ancak uygulamak için yeniden başlatma gerektirir. Edge için: edge://settings/help. Firefox için: Menü → Yardım → Firefox Hakkında.
Çözüm 8: DNS Önbelleğini Temizleyin
Eski DNS, tarayıcınızı siteyi artık TLS üzerinden sunmayan eski bir sunucuya gönderebilir. DNS önbelleğini temizlemek yeni bir sorgu yapılmasını sağlar.
# Windows (Command Prompt as Admin)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
# Linux
sudo resolvectl flush-caches
# Chrome internal DNS cache
# Visit chrome://net-internals/#dns → Click "Clear host cache"Temizledikten sonra alan adının doğru IP'ye çözüldüğünü DNS Robot'un DNS Sorgulama aracıyla doğrulayın. IP adresi yanlış görünüyorsa web sitesi barındırma sağlayıcısını değiştirmiş ve DNS henüz tam yayılmamış olabilir.
Çözüm 9: Sistem Tarih ve Saatini Kontrol Edin
Yanlış saat normalde farklı bir hata gösterir: NET::ERR_CERT_DATE_INVALID ("Saatiniz ileri" veya "Saatiniz geri"), çünkü bir sertifika yalnızca iki tarih arasında geçerlidir. Yine de elemek on saniye sürer:
- Windows: Ayarlar → Saat ve dil → Tarih ve saat → "Saati otomatik olarak ayarla" ve "Saat dilimini otomatik ayarla" seçeneklerini açın
- Mac: Sistem Ayarları → Genel → Tarih ve Saat → "Saati ve tarihi otomatik ayarla"yı açın
- Linux: NTP eşitlemesini açmak için
sudo timedatectl set-ntp truekomutunu çalıştırın
Çözüm 10: SSL Durumunu Temizleyin (Windows)
Pek çok rehber Windows'un İnternet Seçenekleri'ndeki SSL durumunu temizle seçeneğini önerir (inetcpl.cpl → İçerik → SSL durumunu temizle). Bu, Windows'un kendi TLS kitaplığının oturum önbelleğini temizler; Windows ağ altyapısıyla yazılmış uygulamalar onu kullanır. Chrome ve Edge kendi TLS kitaplığını çalıştırdığından onlar için nadiren bir şey değiştirir.
Tarayıcıdaki karşılığı daha basittir: tüm tarayıcı pencerelerini kapatıp (sistem tepsisinde arka planda çalışan bir Chrome olup olmadığına bakın) yeniden açın. Bu, önbellekteki tüm TLS oturumlarını düşürür. Hata tam yeniden başlatmadan sonra da sürüyorsa sonraki çözümlere geçin.
Düzeltme 11: Ağ Ayarlarını Sıfırlayın (Son Çare)
Başka hiçbir şey işe yaramıyorsa ağ yığınınızı sıfırlayın. Windows'ta bu komutlar Winsock'u ve TCP/IP'yi sıfırlar; elle ayarladığınız statik IP adresleri ve DNS sunucuları da silinir. macOS ve Linux'ta ise yalnızca DNS önbelleğini temizler veya ağ hizmetini yeniden başlatır.
# Windows (Command Prompt as Admin)
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns
# Then restart your computer
# macOS — flush the DNS cache
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# Linux — restart NetworkManager
sudo systemctl restart NetworkManagerERR_SSL_PROTOCOL_ERROR Nasıl Düzeltilir (Web Sitesi Sahipleri İçin)
Birçok ziyaretçi ERR_SSL_PROTOCOL_ERROR bildiriyorsa sorun sunucudadır: genellikle 443. port düz HTTP ile yanıt veriyordur ya da o portta başka bir program çalışıyordur. Sertifika sorunları kendi hatalarını gösterir, ama oradayken onları da kontrol edin. (Birbirine uymayan bir sertifika ve anahtar, sunucunun yeni yapılandırmayı hiç yüklememesine yol açar: bir değişiklikten sonra nginx -t veya apachectl configtest ile kontrol edin.)
SSL Sertifikanızı Kontrol Edin
İlk adım, SSL sertifikanızın geçerli, doğru kurulmuş ve süresi dolmamış olduğunu doğrulamaktır. Sertifika durumunuzu, son kullanma tarihini, vereni ve sertifika zincirini anında kontrol etmek için DNS Robot'un SSL Sorgulama aracını kullanın.
Bu sertifika sorunları ERR_SSL_PROTOCOL_ERROR yerine kendi hatalarını gösterir, ama oradayken düzeltin:
- Süresi dolmuş sertifika (NET::ERR_CERT_DATE_INVALID) — Let's Encrypt sertifikaları 90 gün geçerlidir (Şubat 2027'den itibaren 64 gün), bu yüzden yenileme otomatik çalışmalıdır; başarısız olursa (certbot zamanlayıcısı çalışmıyor, DNS doğrulaması bozuk) sertifikanın süresi sessizce dolar.
- Yanlış alan adı (NET::ERR_CERT_COMMON_NAME_INVALID) — Sertifika
example.comiçin verilmiştir ama sitewww.example.comadresinde sunulmaktadır (ya da tersi). Sertifika tam alan adıyla eşleşmeli veya bir joker karakter (*.example.com) içermelidir. - Kendinden imzalı sertifika (NET::ERR_CERT_AUTHORITY_INVALID) — geliştirme için uygundur, üretimde tarayıcılar tarafından asla güvenilmez.
- İptal edilmiş sertifika (NET::ERR_CERT_REVOKED) — sertifika otoritesi onu bir anahtar ele geçirilmesi veya hatalı düzenleme sonrasında iptal etmiştir.
- Ada uymayan sertifika (NET::ERR_CERT_COMMON_NAME_INVALID) — birkaç site aynı IP adresini paylaşıyor ve sunucu her sitenin sertifikasını seçmek için SNI (Server Name Indication) kullanmıyor.
# Check certificate from command line
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com </dev/null 2>/dev/null | openssl x509 -noout -dates -subject -issuer
# Check certificate chain completeness
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com </dev/null 2>&1 | grep -E "depth|Verify"
# Renew Let's Encrypt certificate
sudo certbot renew --dry-run # test first
sudo certbot renewTLS 1.2 ve TLS 1.3'ü Etkinleştirin
Tüm modern tarayıcılar en az TLS 1.2 ister: TLS 1.0 ve 1.1, 2021'de RFC 8996 ile resmen kullanımdan kaldırıldı. Bir tarafın diğerinin sürümünü reddetmesi, el sıkışmayı TLS alert 70, protocol_version ile bitirir (RFC 8446 §6.2). Yalnızca TLS 1.0 veya 1.1 destekleyen bir sunucu bu hatayı değil ERR_SSL_VERSION_OR_CIPHER_MISMATCH gösterir, ama her iki durumda da başarısız olur. TLS 1.3, TLS 1.2'nin iki gidiş-dönüşü yerine tek gidiş-dönüşte bağlanır: ikisini de etkinleştirin.
# Nginx — ssl_protocols in nginx.conf or site config
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers off;
# Apache — in httpd.conf or ssl.conf
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
SSLHonorCipherOrder offTLS yapılandırmanızı güncelledikten sonra web sunucunuzu yeniden başlatın (sudo systemctl restart nginx veya sudo systemctl restart apache2) ve protokollerin etkin olduğunu doğrulamak için DNS Robot'un SSL Sorgulama aracıyla test edin.
Tam Sertifika Zincirini Yükleyin
Eksik bir zincir, eksik ara sertifikayı tamamlayamayan tarayıcılarda ve uygulamalarda bir sertifika hatası (NET::ERR_CERT_AUTHORITY_INVALID) olarak görünür; bu yüzden kontrol ederken tam zinciri kurun. Sunucunuz kendi sertifikanızı ve onu güvenilir bir köke bağlayan ara sertifikaları göndermelidir.
Çoğu sertifika otoritesi bir "CA bundle" veya "full chain" dosyası sağlar. Let's Encrypt için yalnızca cert.pem değil fullchain.pem kullanın. Diğer CA'larda ara sertifikayı belgelerinden indirip sertifikanızla birleştirin.
# Nginx — use fullchain, not just cert
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# Apache
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pemHSTS Yapılandırmasını Kontrol Edin
HSTS (HTTP Strict Transport Security), tarayıcılara alan adınız için her zaman HTTPS kullanmalarını söyler. HSTS politikanızın max-age değeri uzunsa ve TLS kurulumunuz sonradan bozulursa tarayıcılar HTTP'ye dönemez: ziyaretçiler tıklayıp geçme imkânı olmayan bir hata sayfası görür.
HSTS başlığınızı DNS Robot'un HTTP Başlık Kontrolü aracıyla kontrol edin. Çok uzun bir max-age (2 yıl gibi) ayarladıysanız ve sertifikanızın süresi dolduysa, siteyi daha önce ziyaret eden kullanıcılar geri dönüş seçeneği olmadan HTTPS'e kilitlenir. Bunu düzeltmek için önce SSL sertifikanızı onarın; sonra tarayıcılar yeniden normal şekilde bağlanır.
Sunucu Yapılandırmasını Doğrulayın
Bu sunucu hatası geçerli bir sertifikayla bile el sıkışmayı bozar; bir tanesi ise farklı bir hata gösterir:
- 443. portun düz HTTP sunması — sunucu tarafındaki klasik neden: nginx'te
sslolmadanlisten 443;(listen 443 ssl;olmalıdır) veya 443. porta bağlı başka bir hizmet. - Şifre takımı uyuşmazlığı — yalnızca tarayıcıların reddettiği şifreleri sunan bir sunucu ERR_SSL_VERSION_OR_CIPHER_MISMATCH gösterir. Modern AEAD şifreleri (AES-GCM, ChaCha20) kullanın.
Dışarıdan openssl s_client -connect example.com:443 -servername example.com </dev/null ile test edin: "wrong version number" (OpenSSL) veya "tlsv1 alert protocol version" (macOS'in yerleşik openssl'i) 443. portun TLS konuşmadığı, bir sertifika çıktısı ise el sıkışmanın çalıştığı anlamına gelir.
Android'de ERR_SSL_PROTOCOL_ERROR
Android kullanıcıları ERR_SSL_PROTOCOL_ERROR hatasıyla hem Android için Chrome'da hem de WebView tabanlı uygulamalarda karşılaşır. Android sertifikaları ve ağ ayarlarını farklı yönettiği için çözümler masaüstünden biraz farklıdır.
- Ağ değiştirin — Wi-Fi'yi kapatıp mobil veriyi deneyin (ya da tersini). Site açılıyorsa ağ siteyi filtreliyor veya araya giriyordur
- Denemek için Gizli DNS'i kapatın — Ayarlar → Ağ ve internet → Gizli DNS → Kapalı (Chrome'da ayrıca: Ayarlar → Gizlilik ve güvenlik → Güvenli DNS kullan). Filtreleyen bir DNS hizmeti (reklam engelleme, ebeveyn denetimi) engellediği siteleri el sıkışmayı tamamlayamayan bir sunucuya yönlendirir
- Chrome verilerini temizleyin — Ayarlar → Uygulamalar → Chrome → Depolama alanı ve önbellek → Önbelleği temizle (işe yaramazsa depolama alanını yönetme seçeneğini de kullanın)
- Chrome'u güncelleyin — Play Store → profil resminiz → Uygulamaları ve cihazı yönet → Chrome'u güncelleyin
- Ağ kimlik bilgilerini temizleyin — Ayarlar → Güvenlik (yeni telefonlarda: Daha fazla güvenlik ayarı → Şifreleme ve kimlik bilgileri) → Kimlik bilgilerini temizleme. Bu, kullanıcı tarafından yüklenen tüm sertifikaları siler
- Tarih ve saati kontrol edin — Ayarlar → Sistem → Tarih ve saat → otomatik. Yanlış saat bir sertifika hatası gösterir, ama elemek hızlıdır
- Ağ ayarlarını sıfırlayın — Ayarlar → Sistem → Sıfırlama seçenekleri, ardından Wi-Fi ve mobil ağ sıfırlaması (adı Android sürümüne göre değişir: "Bluetooth ve kablosuzu sıfırla", "Mobil Ağ Ayarlarını sıfırla")
iPhone ve iPad'de ERR_SSL_PROTOCOL_ERROR
iPhone'da Chrome ERR_SSL_PROTOCOL_ERROR gösterir; Safari ise sunucuyla güvenli bir bağlantı kuramadığını söyler (İngilizce arayüzde "can't establish a secure connection to the server"). Nedenler bilgisayardakilerle aynıdır; düğmeler farklı yerlerdedir:
- Ağ değiştirin — Wi-Fi'yi kapatıp mobil veriyi deneyin. Site açılıyorsa Wi-Fi ağı siteyi filtreliyor veya araya giriyordur
- Tanımadığınız VPN'leri ve profilleri kaldırın — Ayarlar → Genel → VPN ve Aygıt Yönetimi. Kendi sertifikasını veya VPN'ini yükleyen bir profil HTTPS'e araya girebilir
- iCloud Özel Geçiş olmadan test edin — Ayarlar → [adınız] → iCloud → iCloud Özel Geçiş → kapalı, sonra yeniden deneyin
- Ekran Süresi sınırlarını kontrol edin — Ayarlar → Ekran Süresi → İçerik ve Gizlilik Sınırlamaları, ardından web içeriği ayarı. Engellenen bir site yüklenmek yerine hata verir
- Saati otomatik ayarlayın — Ayarlar → Genel → Tarih ve Saat → Otomatik Ayarla
Diğer Tarayıcılarda ERR_SSL_PROTOCOL_ERROR
ERR_SSL_PROTOCOL_ERROR, Chromium'a özgü bir hata kodudur. Diğer tarayıcılar aynı SSL el sıkışma hatası için farklı hata mesajları gösterir.
| Tarayıcı | Hata mesajı | Hata kodu |
|---|---|---|
| Chrome / Edge / Brave / Opera | Bu site güvenli bağlantı sağlayamıyor · geçersiz bir yanıt gönderdi | ERR_SSL_PROTOCOL_ERROR |
| Firefox | Güvenli Bağlantı Başarısız Oldu | Sunucu düz HTTP ile yanıt verdiğinde SSL_ERROR_RX_RECORD_TOO_LONG; diğer el sıkışma hatalarında başka SSL_ERROR_ kodları |
| Safari (Mac, iPhone) | Sunucuyla güvenli bir bağlantı kurulamıyor (İngilizce arayüzde "Safari can't establish a secure connection to the server") | Kod gösterilmez |
Hata tüm tarayıcılarda aynı anda görünüyorsa sorun ya sisteminizdedir (antivirüsün HTTPS taraması, bir VPN veya proxy, ağınız) ya da sunucudadır (443. port TLS'i düzgün sunmuyor). Yalnızca bir tarayıcıda başarısız oluyorsa o tarayıcının uzantılarını ve önbellekteki verilerini kontrol edin.
İlgili SSL/TLS Hata Kodları
Chrome'da SSL ile ilgili birkaç hata kodu vardır. Hepsi farklı TLS el sıkışması veya sertifika sorunlarını gösterir.
| Hata Kodu | Ne Anlama Gelir | Yaygın Neden |
|---|---|---|
| ERR_SSL_PROTOCOL_ERROR | TLS el sıkışması tümüyle başarısız oldu | 443. portta düz HTTP, HTTPS taraması yapan antivirüs veya proxy, siteyi filtreleyen bir ağ |
| ERR_SSL_VERSION_OR_CIPHER_MISMATCH | "Desteklenmeyen protokol: İstemci ve sunucu ortak bir SSL protokol sürümünü veya şifre takımını desteklemiyor" | Sunucu kullanımdan kalkmış TLS 1.0/1.1 ve zayıf şifreler kullanıyor |
| ERR_CERT_AUTHORITY_INVALID | Sertifika güvenilir bir CA tarafından imzalanmamış | Kendinden imzalı sertifika, eksik ara sertifika, süresi dolmuş kök |
| ERR_CERT_DATE_INVALID | Sertifikanın süresi dolmuş veya henüz geçerli değil | Sertifikanın süresi dolmuş, sistem saati yanlış |
| ERR_CERT_COMMON_NAME_INVALID | Sertifikanın alan adı URL ile eşleşmiyor | Sertifika example.com için, site www.example.com adresinde |
| ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN | Sertifika sabitleme doğrulaması başarısız oldu | Tarayıcının o site için yerleşik olarak tuttuğu bir anahtarla eşleşmeyen sertifika (Chrome, HPKP başlıklarını Ocak 2019'da, 72. sürümde kaldırdı) |
Tüm SSL hatalarında sorunu DNS Robot'un SSL Sorgulama aracıyla hızlıca teşhis edebilirsiniz: sertifika durumunu, zincirin eksiksizliğini, desteklenen TLS sürümlerini ve son kullanma tarihini tek taramada gösterir.
Sayfanız sitenin "Desteklenmeyen protokol" kullandığını söylüyorsa bu hata değil ERR_SSL_VERSION_OR_CIPHER_MISMATCH'tir: bkz. ERR_SSL_VERSION_OR_CIPHER_MISMATCH nasıl düzeltilir.
Sayfa bunun yerine "example.com bağlantıyı beklenmedik şekilde kapattı" diyorsa (ERR_CONNECTION_CLOSED) bağlantı bozulmamış, kesilmiştir. Bu durum için bkz. ERR_CONNECTION_CLOSED.
SSL Sertifikanızı Şimdi Kontrol Edin
Siteyi DNS Robot'un ücretsiz SSL Sorgulama aracına yapıştırın: sunucunun kabul ettiği TLS sürümlerini ve şifreleri, sertifika zincirini, son kullanma ve iptal durumunu A+'dan F'ye kadar notlandırarak gösterir. Tüm kontroller geçerse sorun cihazınızda veya ağınızdadır.
Kaynaklar
Sıkça Sorulan Sorular
ERR_SSL_PROTOCOL_ERROR ne anlama gelir?
Chrome'da ERR_SSL_PROTOCOL_ERROR nasıl düzeltilir?
"localhost sent an invalid response" ne demek?
ERR_SSL_PROTOCOL_ERROR neden tüm web sitelerinde görünüyor?
ERR_SSL_PROTOCOL_ERROR neden yalnızca tek bir web sitesinde görünüyor?
Android'de ERR_SSL_PROTOCOL_ERROR nasıl düzeltilir?
iPhone'da ERR_SSL_PROTOCOL_ERROR nasıl düzeltilir?
ERR_SSL_PROTOCOL_ERROR tehlikeli midir?
Web sitesi sahipleri ERR_SSL_PROTOCOL_ERROR'u nasıl düzeltir?
ERR_SSL_PROTOCOL_ERROR ile ERR_SSL_VERSION_OR_CIPHER_MISMATCH arasındaki fark nedir?
İlgili Makaleler
İlgili Araçlar
SSL Sertifika Kontrolü
SSL sertifika geçerliliğini ve güvenlik ayrıntılarını doğrulayın
HTTP Başlık Kontrolü
HTTP yanıt başlıklarını ve güvenlik başlıkları derecelendirmesini analiz edin
DNS Sorgulama
Tüm DNS kayıtları alan adının kendi ad sunucularından, Google ve Cloudflare önbelleğiyle yan yana
Port Kontrolü
Port bağlantısını ve servis kullanılabilirliğini test edin



