Web sitesi yöneticilerinin en sık karşılaştığı sorunlardan biri, Nginx ile SSL bağlantısı kurarken karşılaşılan
‘SSL Handshake Failed’ hatasıdır. Bu hata, SSL sertifikaları ve güvenli bağlantı süreçleriyle ilgili bir dizi karmaşık sorunun belirtisi olabilir. Ancak endişelenmeyin, bu yazıda bu hatanın nedenlerini ve çözüm yollarını adım adım inceleyeceğiz.
SSL Handshake Failed Nedir?
SSL/TLS, internetteki verilerin güvenli bir şekilde iletilmesini sağlayan protokoldür. Web sunucuları ile istemciler arasındaki güvenli bağlantının kurulduğu aşamaya
SSL handshake denir. Bu aşamada, sunucu ve istemci, şifreleme anahtarlarını ve sertifikalarını karşılıklı olarak doğrular. Eğer bu doğrulama süreci başarısız olursa, “SSL Handshake Failed” hatası alırsınız.
Nginx ‘SSL Handshake Failed’ Hatasının Nedenleri
SSL Handshake Failed hatasının birkaç farklı nedeni olabilir. İşte en yaygın sebepler:
1.
Geçersiz veya Süresi Dolmuş Sertifikalar Sertifikanızın geçerliliği sona ermiş veya doğru bir şekilde yüklenmemiş olabilir. Eğer sertifika süresi dolmuşsa veya yanlış yüklenmişse, handshake işlemi başarısız olur.
2.
Uygunsuz SSL/TLS Protokolü Nginx’in desteklediği SSL/TLS protokolü ile istemcinin kullandığı protokol uyumsuz olabilir. Özellikle eski TLS sürümleriyle ilgili uyumsuzluklar, handshake hatalarına yol açabilir.
3.
SSL Parametrelerinde Hatalar SSL parametrelerinizi doğru yapılandırmadıysanız, bağlantı sağlanamaz. Hangi şifreleme algoritmalarının desteklendiği, hangi protokolün kullanılacağı gibi ayarlar, hatalı yapılmışsa handshake süreci kesilir.
4.
Firewall veya Proxy Sorunları Bazı ağ engellemeleri (örneğin bir firewall veya proxy) SSL handshake sürecine müdahale edebilir. Bağlantının engellenmesi veya kesilmesi bu hataya neden olabilir.
‘SSL Handshake Failed’ Hatası Nasıl Çözülür?
Şimdi, Nginx’te karşılaştığınız
SSL Handshake Failed hatasını nasıl çözebileceğinizi adım adım inceleyelim.
# 1. SSL Sertifikasını Kontrol Edin
İlk adım olarak, SSL sertifikanızın geçerli olduğunu ve doğru şekilde yüklendiğini kontrol etmeniz gerekir. Sertifikanızın süresi dolmuş olabilir. Bunu doğrulamak için aşağıdaki komutu kullanabilirsiniz:
openssl s_client -connect domainadi.com:443
Eğer sertifika geçerli değilse, yeni bir sertifika almanız gerekebilir. Let’s Encrypt gibi ücretsiz sertifika sağlayıcıları da mevcuttur.
# 2. SSL/TLS Protokollerini Güncelleyin
Eski SSL/TLS protokollerini devre dışı bırakmak ve daha yeni protokollerle (TLS 1.2 veya TLS 1.3 gibi) güncellemek önemlidir. Bu, uyumsuzluk problemlerini ortadan kaldırabilir. Nginx konfigürasyon dosyanızda aşağıdaki ayarları yapabilirsiniz:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384';
# 3. SSL Sertifika Zincirini Doğrulayın
SSL sertifika zincirinin eksik veya hatalı olması da handshake hatalarına yol açabilir. Sertifika dosyanızın tam ve doğru zincirden oluştuğundan emin olun. İstemci, doğru sertifika zincirine ulaşamadığında bağlantı kuramayabilir.
# 4. Proxy ve Firewall Ayarlarını Gözden Geçirin
Eğer SSL handshake sorunu devam ediyorsa, ağ yapılandırmanızı kontrol edin. Bir firewall veya proxy sunucusu, SSL bağlantısını engelliyor olabilir. Ağ yapılandırmanızda gerekli izinleri vererek bağlantının engellenmediğinden emin olun.
# 5. Nginx’i Güncelleyin
Eski bir Nginx sürümü kullanıyorsanız, güvenlik güncellemeleri ve hata düzeltmeleri için yazılımınızı güncellemeyi unutmayın. Güncel olmayan bir yazılım, SSL/TLS protokolü ve şifreleme algoritmalarına destek vermeyebilir.
sudo apt update
sudo apt upgrade nginx
# 6. Hata Loglarını İnceleyin
Son olarak, Nginx hata loglarını inceleyin. Loglarda, hatanın daha fazla ayrıntısını bulabilir ve çözüm için daha fazla ipucu elde edebilirsiniz. Hata loglarını aşağıdaki komutla görüntüleyebilirsiniz:
tail -f /var/log/nginx/error.log
Sonuç
‘SSL Handshake Failed’ hatası, birçok farklı sebepten kaynaklanabilir, ancak doğru adımları izleyerek bu sorunu kolayca çözebilirsiniz. Sertifikaların geçerliliğini kontrol edin, protokol ayarlarınızı güncelleyin, ağ yapılandırmanızı gözden geçirin ve gerekirse yazılımınızı güncelleyin. Tüm bu adımlar, web sitenizin güvenli bağlantı sağladığından emin olmanıza yardımcı olacaktır.