ssl bağlantı hatasının nedenleri ve çözümleri
ssl bağlantı hatasının nedenleri ve çözümleri

Apache'de SSL Bağlantı Hatası Nasıl Düzeltilir: Nedenleri ve Çözümleri

0 Hisse senetleri
0
0
0
0

giriiş

SSL bağlantı hataları, bir istemci ile sunucu arasında güvenli bir bağlantı kurulmasını engelleyebilecek yaygın ancak kritik bir sorundur. Bu hatalar, TLS el sıkışma işlemi başarısız olduğunda, yani tarayıcı veya istemci ile sunucu güvenli bir HTTPS bağlantısı kuramadığında ortaya çıkar. Protokol müzakeresinden nihai sertifika doğrulamasına kadar herhangi bir aşamadaki hatalar bu tür hatalara neden olabilir.

Böyle bir hata oluştuğunda şu tür mesajlar görüntülenir: SSL bağlantısı başarısız oldu, ERR_SSL_PROTOKOL_HATASI Veya SSL el sıkışma hatası Tarayıcınızda veya uygulamanızda. Bu sorun, site taramasını, API'leri, e-postayı veya şifreli iletişim kullanan herhangi bir hizmeti etkileyebilir.

Bu makalede, sitenizin veya uygulamanızın güvenli bir şekilde bağlı kalmasını sağlamak için tarayıcılar, komut satırı araçları ve sunucu yapılandırmaları dahil olmak üzere çeşitli senaryolarda "SSL bağlantı hatası"nı nasıl tespit edip düzelteceğinizi göstereceğim.


Önemli Çıkarımlar

  • SSL hatalarının çoğu ( civarı) üç ana nedenden kaynaklanır:

    1. Süresi Dolmuş veya Kendi Kendine İmzalanmış Sertifika yenilenmesi veya değiştirilmesi gereken.

    2. Alan adı uyumsuzluğu (CN/SAN) İstenilen alan adına ait sertifikada. .

    3. Orta Düzey CA YokBu, sertifika zincirinin eksik olduğu ve tam doğrulamanın gerçekleştirilmediği anlamına gelir. .

  • Sorunları doğru bir şekilde teşhis etmek için şu araçları kullanabilirsiniz:

    • curl -v https://example.com (ayrıntılı mod)

    • openssl s_client -connect host:443 -servername host -showcerts Tam sertifika zincirini kontrol etmek için

  • Asla Üretim ortamında SSL doğrulamasını devre dışı bırakmayın (örneğin, kıvrılma -k Veya doğrula=Yanlış) — Bu sadece sorunu gizler ve güvenliği sorgulatır.

  • Öneri: Sertifikaların otomatik olarak yenilenmesini sağlayın, TLS 1.3 kullanımını etkinleştirin ve sertifika durumunu ve OCSP'yi izlemek için bir sistem kurun. DijitalOkyanus


SSL Bağlantı Hatasını kontrol etmek için ön koşullar

Sorun gidermeye başlamadan önce aşağıdaki gereksinimlere sahip olmanız gerekir: Linux işletim sistemi (Ubuntu gibi) çalıştıran bir sunucu, kök veya sudo erişimi, komut satırına ilişkin temel bilgi, sunucuda yapılandırılmış bir etki alanı ve SSL/TLS kavramlarına ilişkin temel bir anlayış.


SSL Bağlantı Hatası Nedir?

TLS bağlantısı kurulurken, istemci ve sunucu protokol sürümü, şifre paketi ve sertifika zinciri üzerinde anlaşmalı ve sertifika doğrulanmalıdır. Bu adımlardan herhangi biri başarısız olursa, istemci bağlantıyı keser ve bir SSL bağlantı hatası oluşur. 

Hata mesajı şunlar dahil olmak üzere değişiklik gösterebilir:

  • curl: (35) SSL bağlantı hatası

  • SSL: SERTİFİKA_DOĞRULAMA_BAŞARISIZ (Python isteklerinde)

  • ERR_SSL_PROTOKOL_HATASI (Tarayıcıda)

  • el sıkışma_başarısızlığı (OpenSSL'de)


SSL Connect hatasının temel nedenleri ve hızlı çözümü

NedenKısa açıklama/çözüm
Süresi Dolmuş veya Kendi Kendine İmzalanmış SertifikaSertifikayı yenileyin (örneğin Certbot / Let's Encrypt ile) veya güvenilir bir CA'dan sertifika yükleyin
Alan adı uyumsuzluğu (CN/SAN)Sertifikayı doğru etki alanıyla yeniden yayınlayın ve CN/SAN'ın başvurulan etki alanıyla eşleştiğinden emin olun. 
Orta Düzey CA YokSunucuya tam sertifika zincirinin (yaprak + ara) kurulumu 
Yanlış TLS sürümü veya ŞifreTLS 1.2/1.3'ü etkinleştirme ve web sunucusu yapılandırmasında modern şifreleri seçme 
Sistem saati (Clock) yanlış.Sistem saatini NTP ile senkronize edin (timedatectl set-ntp true)
Güvenlik duvarı veya ağ yapılandırması443 portunun açık olduğundan ve HTTPS trafiğinin engellenmediğinden emin olun
Geçersiz CAGeçerli bir CA sertifikası kullanın veya CA'yı sistemin güvenilir köklerine ekleyin.

SSL Bağlantı Hatası oluştuğunda yaygın sunucu sorunlarını teşhis etme ve düzeltme

Hata olduğunda SSL bağlantı hatası Bu hatayla karşılaşırsanız, genellikle istemci (sisteminiz) ile hedef sunucu arasında güvenli bağlantı kurma yolunda bir sorun vardır. Bu hata, yanlış SSL ayarları, uyumsuz protokol sürümleri, DNS sorunları, sertifika sorunları veya hatta bir güvenlik duvarı nedeniyle oluşabilir. Bu bölümde, sunucuda bu hatanın adım adım nasıl teşhis edilip düzeltileceğini ayrıntılı olarak açıklayacağız.

1. Sunucudaki SSL sertifikasını kontrol edin

İlk adım, sunucuya yüklenen SSL sertifikasının geçerli olduğundan emin olmaktır:

  • Sertifikanın süresi dolmadı.

  • Alan adı (CN veya SAN) talep edilen adresle eşleşiyor.

  • Sertifika zinciri doğru şekilde kuruldu (Ara Sertifikalar).

Detaylı inceleme için:

openssl s_client -connect example.com:443 -servername example.com

Çıktıda aşağıdakileri kontrol edin:

  • Dönüş kodunu doğrulayın: 0 (tamam)

  • Tam bir zincirin varlığı (Sertifika zinciri)

  • Güvenilir bir yayıncıyı görüntüleyin (örneğin Let's Encrypt, Cloudflare, Sectigo)

Eğer dönüş kodu sıfırdan farklıysa sunucu tarafında bir SSL sorunu var demektir.


2. TLS sürümlerini ve şifreleme algoritmalarını (Şifre Paketleri) kontrol edin

İstemciler ve sunucular en az bir protokol ve şifreyi paylaşmalıdır. Sunucu yalnızca TLS 1.3'ü destekleyebilir, ancak eski istemci yalnızca TLS 1.0'ı destekleyebilir.

Protokolleri kontrol etmek için:

nmap --script ssl-enum-ciphers -p 443 example.com

Dikkat edilmesi gereken noktalar:

  • Aktif olmak TLS 1.2 veya TLS 1.3

  • TLS 1.0 ve SSLv3 gibi güvenli olmayan sürümleri devre dışı bırakma (isteğe bağlı ancak önerilir)

  • Aşağıdaki gibi standart şifrelerin varlığı:

    • TLS_AES_256_GCM_SHA384

    • ECDHE-RSA-AES256-GCM-SHA384

Uyumlu bir sürüm veya şifre yoksa bağlantı kesilir ve SSL Bağlantı Hatası görüntülenir.


3. Güvenlik duvarı ve bağlantı noktası ayarlarını kontrol edin

Bazen SSL bağlantısı, el sıkışma başlamadan önce bile güvenlik duvarı tarafından engellenir.

Önemli noktalar:

  • Liman 443/TCP Açık olun.

  • Yazılım güvenlik duvarı (UFW / firewalld / CSF) HTTPS trafiğine izin verir.

Hızlı bir inceleme:

sudo ufw status

Veya:

sudo iptables -L -n

Cloudflare veya bir CDN kullanıyorsanız şunlardan emin olun:

  • SSL/TLS modu doğrudur (Tam/Tam Sıkı)

  • CDN IP'leri İzin Verilenler Listesindedir.


4. Sunucudan hedefe bağlantıyı test edin

Ağ sorunlarını kontrol etmek için:

curl -v https://example.com

Çıktı aşağıdaki sorunları ortaya çıkarabilir:

  • bağlantı reddedildi

  • SSL sertifika sorunu

  • Yerel yayıncı sertifikası alınamıyor

  • el sıkışma başarısızlığı

  • zaman aşımı

Veya ping ve traceroute testi:

ping example.com traceroute example.com

Ağ yolu kesintiye uğrarsa SSL el sıkışması gerçekleştirilmeyecektir.


5. DNS sorunlarını kontrol edin

DNS sunucusu yanlış adres sağlarsa, bağlantı başka bir sunucuya yönlendirilir ve SSL uyumsuzluğu oluşur.

Test:

dig example.com nslookup example.com

Kontrol noktaları:

  • IP doğrudur.

  • DNS yayılımı tamamlandı.

  • AAAA (IPv6) kaydı tutarsız değil (varsa)

Bazen IPv6'yı devre dışı bırakmak sorunu çözer.


6. Sunucudaki Saat ve Tarihi Kontrol Edin

SSL, doğru zamana büyük ölçüde bağlıdır. 5 dakikalık bir hata bile sorunlara yol açabilir.

Gözden geçirmek:

timedatectl

Sorun olması durumunda:

sudo timedatectl set-ntp true

Sunucu saati yanlışsa, sistem sertifikanın henüz geçerli olmadığını veya süresinin dolduğunu düşünecektir.


7. CA Paket Sistemini Kontrol Edin

Sisteminiz güvenilir CA'ları tanımıyorsa, sağlıklı bir sertifika bile hata verecektir.

Linux dağıtımlarında:

sudo update-ca-certificates

Veya:

sudo yum update ca-certificates

8. Proxy veya MitM araçlarını kontrol edin

Bağlantı yolunda proxy veya trafik filtresi varsa sertifika değiştirilebilir ve uyumsuzluk oluşabilir.

Kontrol noktaları:

  • Curl veya sistem ortamında proxy ayarları

  • Antivirüs veya Suricata gibi IDS/IPS'yi kapatın

  • Proxy olmadan test:

curl -v --noproxy '*' https://example.com

9. Uygulama veya web sunucusu tarafında hata kontrolü

Nginx/Apache yapılandırmasında sorunlar olabilir:

Nginx:

  • Zincir yolu:

ssl_certificate /etc/ssl/certs/fullchain.pem;
ssl_certificate_key /etc/ssl/private/privkey.pem;

Apaçi:

SSLCertificateFile /etc/ssl/certs/cert.pem
SSLCertificateChainFile /etc/ssl/certs/chain.pem
SSLCertificateKeyFile /etc/ssl/private/key.pem

Eğer zincir sırası yanlışsa → SSL Bağlantı Hatası kesindir.

Sistem zaman senkronizasyonu

Sunucu saati yanlışsa, sertifika geçerli görünmeyebilir. Saati NTP ile senkronize edin.


Kaçınılması gereken yaygın hatalar

  • Gibi seçenekleri kullanarak -k İçinde bukle Veya doğrula=Yanlış Python'da SSL'i atlatmak güvenliği zayıflatır ve sadece hatayı gizler. DijitalOkyanus

  • Üretim Ortamında Kendinden İmzalı Sertifika Kullanımı

  • SSL'nin her zaman çalıştığını varsayarak (son kullanma tarihlerini veya sertifika zincirlerini izlemeden)

  • Sunucu, sertifika zincirinin tamamını kontrol etmiyor


Sonuç

SSL Bağlantı hatası, bir tarayıcı veya istemci ile sunucu arasında güvenli bir bağlantının önündeki en yaygın engellerden biridir. Ancak, nedeni doğru bir şekilde teşhis ederek (ister süresi dolmuş bir sertifika, ister alan adı uyumsuzluğu, ister eksik bir yapılandırma olsun) ve en iyi çözümleri uygulayarak, bu sorun kolayca ve güvenli bir şekilde çözülebilir. Kolaylık uğruna her zaman güvenlikten ödün vermeyin; SSL kimlik doğrulamasını devre dışı bırakmak yalnızca geçici olarak işe yarar ve bir güvenlik riski oluşturur.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz