Alert Protocol, TLS bağlantısında bir sorunu veya bağlantının kapatıldığını karşı tarafa bildiren mesajlardır. Tarayıcı ve sunucu günlüklerinde gördüğünüz "handshake failure" ya da "unknown CA" ifadeleri bu uyarı kodlarından gelir.
Uyarı yapısı
Her uyarı iki bayttır: seviye ve açıklama. TLS 1.2'de seviye warning veya fatal olabilir; fatal uyarıdan sonra bağlantı hemen kapatılır. TLS 1.3'te hemen tüm hata uyarıları zorunlu olarak ölümcüldür; yalnızca close_notify ve user_canceled kapanış amaçlıdır.
Sık görülen uyarılar
close_notify (0): Normal, düzgün kapanış.bad_record_mac (20): Kayıt doğrulanamadı.handshake_failure (40): Ortak paket veya parametre bulunamadı.bad_certificate (42),certificate_unknown (46): Sertifika sorunlu.certificate_expired (45): Sertifikanın süresi dolmuş.unknown_ca (48): Zincirdeki CA güvenilir değil veya ara sertifika eksik.decrypt_error (51): İmza veya Finished doğrulaması başarısız.protocol_version (70): Sürüm desteklenmiyor.insufficient_security (71): Sunucu zayıf parametreleri reddetti.unrecognized_name (112): SNI ile istenen ad tanınmadı.
Sorun giderme yaklaşımı
- Hatayı yeniden üretin ve uyarı kodunu yakalayın:
openssl s_client -connect example.com:443 -servername example.com -tls1_2 - Kod "unknown_ca" ise zinciri kontrol edin, eksik ara sertifikayı ekleyin.
- "protocol_version" veya "handshake_failure" ise istemci ile sunucunun ortak bir TLS sürümü ve paketi olup olmadığına bakın.
- "certificate_expired" ise sertifika tarihlerini ve sunucu saatini doğrulayın.
İpuçları
- Sunucu günlüklerinde (Nginx
error.log, Apachessl_error_log) uyarının hangi tarafça gönderildiğine dikkat edin. - Wireshark'ta
tls.alert_messagefiltresi işe yarar.
Adım adım teşhis için SSL sorun giderici, genel kontrol için SSL denetleme aracı kullanılabilir.