- Konu sahibi
- #1
SSL handshake failed ne demek?
SSL handshake failed, tarayıcı veya istemci ile sunucunun HTTPS bağlantısını başlatırken TLS güvenli oturumunu kuramadığı anlamına gelir. Bu aşamada henüz web sayfası yüklenmez; taraflar TLS sürümünü, şifreleme yöntemini ve sunucu sertifikasını doğrularken anlaşmazlık oluşur. Sorun bazen sunucuda, bazen istemcide, DNS/CDN katmanında veya aradaki güvenlik duvarında bulunur.Bu hata, sertifikanın mutlaka süresi dolduğu anlamına gelmez. Sertifika geçerli olsa bile yanlış alan adına atanmışsa, sunucu uygun TLS sürümünü desteklemiyorsa, SNI yanlış gidiyorsa veya proxy bağlantıyı bozuyorsa handshake tamamlanamaz.
Handshake sırasında ne olur?
İstemci HTTPS portuna bağlanır ve desteklediği TLS özelliklerini bildirir. Sunucu uygun bir TLS yapılandırması seçip sertifikasını gönderir. İstemci sertifika zincirini, alan adını ve geçerlilik koşullarını kontrol eder. Ardından iki taraf anahtar değişimini tamamlayarak şifreli HTTP trafiğine geçer.
Bu adımlardan biri başarısız olduğunda tarayıcı genel olarak “SSL handshake failed”, “Secure connection failed” veya benzer bir hata gösterir. Ayrıntılı neden, sunucu hata kayıtlarında ya da TLS test çıktısında görülebilir.
Yaygın nedenler ve doğru yorum
| Belirti | Olası neden | İlk kontrol |
|---|---|---|
| Sertifika uyarısı veya alan adı uyuşmazlığı | Sertifika istenen alan adını kapsamıyor | Sertifika adlarını ve kullanılan hostname’i karşılaştırın |
| TCP bağlantısı daha TLS başlamadan reddediliyor | Port kapalı, servis dinlemiyor veya ağ erişimi engelli | Önce dinleme portunu ve ağ erişimini kontrol edin |
| Yalnızca bazı eski istemcilerde hata var | İstemcinin desteklemediği TLS sürümü veya şifreleme yöntemi | Aynı adresi güncel ve farklı bir istemciyle deneyin |
| Yalnızca CDN üzerinden hata var | CDN ile origin sunucu arasındaki HTTPS ayarı uyumsuz | CDN’nin origin hostname, port ve sertifika doğrulamasını kontrol edin |
| Aralıklı hata görülüyor | Birden fazla sunucu düğümünün TLS ayarı farklı | Her IP veya düğümün sertifikasını ayrı doğrulayın |
Tablodaki belirti tek başına kesin teşhis değildir. Özellikle CDN, yük dengeleyici ve reverse proxy kullanılan yapılarda tarayıcı ile origin sunucu arasındaki her TLS bağlantısı ayrı ayrı değerlendirilmelidir.
Uygulanabilir teşhis adımları
- Sorunun kapsamını belirleyin. Aynı alan adını farklı bir ağdan ve farklı bir güncel tarayıcıdan deneyin. Yalnız tek cihazda görülüyorsa cihaz saati, işletim sistemi sertifika deposu, proxy veya antivirüs HTTPS denetimi şüphelidir. Her yerde görülüyorsa sunucu veya ara katman önceliklidir.
- Alan adının doğru sunucuya gittiğini kontrol edin. DNS değişikliği, yanlış A/AAAA kaydı veya farklı bir IPv6 sunucusu istemcileri hatalı düğüme yönlendirebilir. IPv4 ve IPv6 sonuçları farklıysa iki sunucunun TLS ayarlarını karşılaştırın.
- TLS görüşmesini doğrudan inceleyin. OpenSSL kurulu bir terminalde aşağıdaki örnek alan adını kendi hostname’inizle değiştirin:
Kod:openssl s_client -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error-servernameSNI adını gönderir; tek başına alan adı doğrulaması yapmaz.-verify_hostnamead eşleşmesini denetler,-verify_return_errordoğrulama hatasında bağlantıyı durdurur. Sisteminizde uygun güvenilir CA deposu bulunmalıdır. Başarıda doğrulama sonucu0 (ok)olmalıdır; hata çıktısında zincir, ad veya protokol ayrıntısını inceleyin. - Sertifika kapsamını ve zincirini kontrol edin. Sertifikanın ziyaret edilen hostname’i içermesi, süresinin geçerli olması ve sunucunun gerekli ara sertifikaları istemciye göndermesi gerekir. Sertifika yenilendiği halde eski zincir sunuluyorsa web sunucusunu yeniden yükleyin.
- Web sunucusu, reverse proxy ve CDN ayarlarını birlikte karşılaştırın. HTTPS’nin dinlediği port, SNI ile seçilen sanal host, TLS sürümleri ve sertifika dosyaları aynı akış üzerinde uyumlu olmalıdır. CDN kullanılıyorsa istemci-CDN bağlantısı ile CDN-origin bağlantısını ayrı test edin.
- Düzeltmeden sonra yalnız tarayıcı önbelleğine güvenmeyin. TLS komutuyla, farklı bir ağdan ve mümkünse hem IPv4 hem IPv6 üzerinden yeniden deneyin. Hata devam ederse aynı zaman aralığındaki sunucu, proxy ve güvenlik duvarı kayıtlarını eşleştirin.
Varsayımsal örnek
Bir site IPv4 üzerinden doğru sertifikayı sunarken IPv6 üzerinden eski sunucuya yönleniyor olsun. Bazı ziyaretçiler siteye ulaşır, bazıları ise
SSL handshake failed görür. Sertifikanın yenilenmesi yalnız IPv4 sunucusunda yapılmışsa sorun sertifikanın kendisinden çok DNS’in işaret ettiği iki sunucunun farklı yapılandırılmasından kaynaklanır. Önce IPv6 adresinin hangi sunucuya ait olduğunu doğrulayın; ardından yanlış DNS hedefini veya ilgili sunucunun TLS ayarlarını düzeltin. Kayıtları teşhis koymadan kaldırmak hizmet erişimini değiştirebilir.Sık yapılan hatalar
- Sadece sertifikayı yeniden yükleyip ara sertifika zincirini kontrol etmemek.
- Sertifikayı kök alan adı için alıp kullanılan alt alan adını kapsam dışı bırakmak.
- CDN’de sertifikayı düzeltirken CDN-origin bağlantısındaki hostname veya doğrulama ayarını gözden kaçırmak.
- Sertifikayı doğrulayan istemcinin saatini kontrol etmemek; ciddi saat farkı geçerlilik denetimini bozabilir.
- Güvenliği azaltmak için TLS doğrulamasını kapatmayı kalıcı çözüm sanmak. Bu yalnızca teşhis amacıyla, kontrollü bir ortamda değerlendirilebilir; üretimde sertifika ve TLS yapılandırması düzeltilmelidir.