Ana içeriğe geç

🛡️ SSL Bağlantı Hatası Çözümü: Nedenleri ve Kesin Çözümler

Bu Rehberde Ne Öğreneceksiniz?

Bu rehber, HTTPS bağlantılarınızı bozan SSL connect error hatalarının gerçek nedenlerini anlamanıza ve hızlıca çözmenize yardımcı olur.
Süresi dolmuş sertifikalardan TLS sürüm uyuşmazlıklarına, eksik CA zincirlerinden firewall engellerine kadar tüm senaryolar için net, uygulanabilir adımlar sunar.

Ayrıca:

  • curl -v
  • openssl s_client
  • Nginx/Apache SSL ayarları
    gibi kritik teşhis araçlarını nasıl kullanacağınızı öğreneceksiniz.

🧠 SSL Bağlantı Hatası Nedir?

Bir istemci (tarayıcı, API, komut satırı aracı) ile sunucu arasında yapılan TLS handshake başarısız olduğunda SSL bağlantı hatası oluşur.

Görülen tipik mesajlar:

  • ERR_SSL_PROTOCOL_ERROR
  • curl: (35) SSL connect error
  • SSL handshake failure
  • SSL: CERTIFICATE_VERIFY_FAILED

Bu hatalar genellikle protokol uyuşmazlığı, sertifika zinciri eksikliği veya doğrulama başarısızlığından kaynaklanır.


🎯 En Yaygın 3 Kök Neden

SSL hatalarının yaklaşık %80’i şu üç sebepten oluşur:

  1. Süresi dolmuş / geçersiz sertifika
  2. Alan adı eşleşme hatası (CN/SAN uyuşmazlığı)
  3. Eksik Ara CA (certificate chain incomplete)

Aşağıdaki tabloda tüm önemli nedenleri görebilirsin:

Hata NedeniAçıklamaHızlı Çözüm
Süresi dolmuş sertifikaSertifika geçersizCertbot ile yenile
CN/SAN eşleşmiyorAlan adı sertifika ile uyuşmuyorSertifikayı doğru domainlerle yeniden çıkar
Ara CA eksikZincir tamamlanamıyorFullchain.pem kullan
TLS sürümü uyumsuzTarayıcı sunucu TLS’inde anlaşamıyorTLS 1.2/1.3 aktif et
Sistem saati yanlışSertifika validasyonunda hataNTP ile senkronize et
Firewall engeli443 / OCSP kapalı443 ve 80’i aç

🔧 Adım Adım Çözüm Yolları

1) Sertifika Süresi ve Yenileme Sorunları

1.1 ➤ Yenileme Testi

sudo certbot renew --dry-run

Bu komut yenileme sürecinin sorunsuz çalıştığını doğrular.

1.2 ➤ Otomatik Yenileme (cron)


0 12 * * * /usr/bin/certbot renew --quiet
Günlük otomatik yenileme planlar.

2) CN/SAN Alan Adı Uyuşmazlığı

2.1 ➤ Sertifika SAN alanını kontrol et


openssl x509 -in /etc/letsencrypt/live/rabisu.cloud/cert.pem -text -noout | grep -A1 "Subject Alternative Name"

2.2 ➤ Doğru domainlerle yeniden çıkar


sudo certbot --nginx -d rabisu.cloud -d www.rabisu.cloud -d api.rabisu.cloud

3. Eksik Ara CA Sertifikası (Chain Incomplete)

3.1 ➤ Zinciri kontrol et


openssl s_client -connect rabisu.cloud:443 -servername rabisu.cloud -showcerts

3.2 ➤ Nginx’te doğru yapılandırma


ssl_certificate /etc/letsencrypt/live/rabisu.cloud/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/rabisu.cloud/privkey.pem;

fullchain.pem ara CA sertifikalarını da içerir.


4. TLS Sürümü Uyumsuzluğu

4.1 ➤ Nginx modern TLS konfigürasyonu


ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers off;

5. Sistem Saati Kayması

5.1 ➤ NTP’yi etkinleştir


sudo timedatectl set-ntp true

6. Firewall / Ağ Blokları

6.1 ➤ Gerekli portları aç


sudo ufw allow 443/tcp
sudo ufw allow 80/tcp

6.2 🧪 SSL Hatalarını Teşhis İçin En Güçlü Araçlar

✔ OpenSSL


openssl s_client -connect rabisu.cloud:443 -showcerts

Sertifika zincirini ve TLS ayarlarını analiz eder.

✔ curl -v


curl -v https://rabisu.cloud

Handshake sürecinin ayrıntılarını gösterir.

✔ Nmap


nmap --script ssl-enum-ciphers -p 443 rabisu.cloud

Sunucunun desteklediği TLS sürümlerini ve cipher paketlerini listeler.

❓ Sıkça Sorulan Sorular (SSS)

1. Python'da CERTIFICATE_VERIFY_FAILED nasıl çözülür?


import requests
requests.get("https://rabisu.cloud", verify="/path/to/ca-bundle.crt")
Doğru CA dosyasını verify= parametresine ver.

2. SSL doğrulamasını devre dışı bırakmak güvenli mi?

❌ Asla değil. Yalnızca test ortamında geçici olarak kullanılabilir. Üretimde MITM saldırısına kapı açar.

3. Sertifika yenileme otomasyonu nasıl yapılır? Certbot + cron ideal çözümdür:


0 3 * * * certbot renew --quiet

4. Sunucu saat kayması neden SSL hatası üretir?

Sertifikalar belirli bir geçerlilik aralığına sahiptir. Saat yanlışsa istemci sertifikayı anında reddeder.

5. Hangi TLS sürümünü kullanmalıyım?

🔒 TLS 1.3 (en güvenli ve en hızlı) 🔒 TLS 1.2 destek olmalı ❌ TLS 1.0–1.1 kesinlikle devre dışı bırakılmalı.

🏁 Sonuç ve Önerilen İleri Adımlar

Bu rehber sayesinde:

SSL hatalarının gerçek nedenlerini analiz edebilecek,

Sunucu yapılandırmasını doğru şekilde optimize edebilecek,

Sertifika zincirini eksiksiz kurabilecek,

TLS güvenliğini modern standartlara yükseltebileceksiniz.

Daha profesyonel testler yapmak istersen:

👉 Rabisu Bulut üzerinde bir sunucu oluşturup gerçek SSL yapılandırmasını uygulayabilirsin. Güvenli bir altyapı için harika bir başlangıç olur.