ERR_SSL_PROTOCOL_ERROR: tarayıcıda "Bu site güvenli bağlantı sağlayamıyor"

SSL Sertifikası ve https 45 görüntülenme Markdown

Siteyi https:// ile açmaya çalışıyorsunuz ve tarayıcı şöyle diyor: "Bu site güvenli bağlantı sağlayamıyor. Alan adı yanlış bir yanıt gönderdi" ve altında ERR_SSL_PROTOCOL_ERROR. Tarayıcı güvenli (TLS) bağlantı kurmayı denemiş ama karşı taraf TLS ile cevap vermemiş. Sertifikanın süresi ya da adıyla ilgili uyarılardan farklıdır; burada pazarlığın kendisi kurulamıyor.

1. Önce ne cevap veriyor, görün

curl -vI https://ornek.com 2>&1 | head -20

Çıktıda SSL connection using TLSv1.3 ve sertifika bilgisi görüyorsanız TLS çalışıyordur, sorun tarayıcıya özgüdür (adım 5). Bunun yerine SSL_ERROR_SYSCALL, wrong version number ya da Connection refused görürseniz sunucu tarafında 443 hazır değildir.

2. 443 portu dinleniyor mu?

sudo ss -tlnp | grep ":443"

Hiçbir şey çıkmıyorsa Nginx 443'ü dinlemiyordur: SSL ayarı hiç yapılmamış ya da Nginx kapalıdır. Güvenlik duvarında 443'ün açık olduğundan da emin olun: UFW.

3. "listen 443" var ama "ssl" yok

En klasik hata: Nginx 443'ü dinler ama o port için SSL'in açık olduğu söylenmemiştir. Bu durumda Nginx düz http ile cevap verir ve tarayıcı protokol hatası görür. Doğru:

server {
    listen 443 ssl;
    server_name ornek.com;
    ssl_certificate     /etc/letsencrypt/live/ornek.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ornek.com/privkey.pem;
    ...
}

listen 443; yazıp ssl kelimesini unutmak bu hatayı verir. Değişiklikten sonra sudo nginx -t && sudo systemctl reload nginx. Sertifika henüz yoksa önce alın: ücretsiz SSL.

4. Önünde başka bir katman var

  • Cloudflare: Alan adı yeni eklendiyse ya da SSL modu uyumsuzsa bu hatayı verebilir. SSL/TLS modunu kontrol edin (Full strict önerilir) ve SSL ücretsiz sertifikanın etkinleşmesini birkaç dakika bekleyin: Cloudflare hataları.
  • Ters proxy ya da yük dengeleyici http bekleyen bir porta TLS gönderiyor olabilir (ya da tersi). proxy_pass adresinin şemasını (http/https) arka uçla eşleştirin: Nginx ters proxy.
  • Hosting paketinde: Alan adı için SSL henüz etkinleştirilmemiş olabilir: hosting SSL. Alan adının A kaydı da doğru sunucuya gitmelidir.

5. Sorun yalnızca sizin bilgisayarınızda ise

  • Antivirüs ya da güvenlik yazılımlarının "HTTPS taraması" özelliğini geçici kapatıp deneyin.
  • Tarayıcıda çok eski bir TLS ayarı ya da özel bir eklenti olabilir; gizli pencerede ve başka bir tarayıcıda deneyin.
  • Bilgisayar saatinin doğru olduğundan emin olun: sertifika süresi ve saat.
  • Çok eski bir sunucuda yalnızca eski TLS sürümleri açıksa modern tarayıcılar reddeder (ERR_SSL_VERSION_OR_CIPHER_MISMATCH). Nginx'te ssl_protocols TLSv1.2 TLSv1.3; kullanın.

Sık sorulanlar

http çalışıyor ama https açılmıyor, neden?

Sunucuda 443 portu için SSL ayarı yapılmamıştır ya da güvenlik duvarında kapalıdır. Yukarıdaki 2. ve 3. adımlara bakın.

Hata yalnızca belirli bir tarayıcıda çıkıyor.

Büyük olasılıkla o tarayıcının önbelleği ya da eklentisi. Önbelleği ve HSTS kaydını temizleyin; Chrome için chrome://net-internals/#hsts sayfasından alan adını silebilirsiniz.

Yeni aldığım sertifikayla hâlâ hata var.

Nginx'i yeniden yüklediniz mi? nginx -t hata veriyor mu? Sertifika dosyalarının yolu doğru mu, okunabilir mi? Hepsini kontrol edin.

İlgili makaleler

Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.