Neden eski Android cihazlar HTTPS sitelerini açmıyor ve hemen ne yapılmalı

Kerem Aydın·6 Temmuz 2026·⏱3 dk

Kısa cevap: Android 4'te sorun çoğunlukla eskimiş güvenilir kök deposu ve TLS/şifreleme paketi uyumsuzluğundan kaynaklanır (bazen SNI veya eski WebView da rol oynar). Kullanıcı için hızlı çözüm, kendi TLS/CA yığınına sahip bir tarayıcı denemek (örneğin Firefox) veya WebView/tarayıcıyı güncellemektir; yönetici için ise uyumlu sertifika zinciri göndermek ve TLS 1.2'yi desteklemektir.

Neden böyle oluyor: Kısa ve öz

  • Eskimiş kök sertifikalar: Modern CA'lar ve imza zincirleri değişmiş olabilir — eski sistemin imzayı doğrulayacak referansı yoktur.
  • TLS ve şifreleme paketleri: Android 4 varsayılan olarak her zaman TLS 1.2 ve modern şifreleme paketlerini desteklemez; yalnızca yeni şifreleme paketlerini gerektiren sunucu bağlantıyı keser.
  • SNI ve ClientHello'daki ana bilgisayar adı: Bazı istemciler/kütüphaneler TLS el sıkışması sırasında ana bilgisayar adını göndermez ve sunucu yanlış sertifikayı gönderir veya oturumu sonlandırır.
  • Eski WebView/tarayıcı: Motorlar güncellenmez ve modern HTTPS gereksinimlerini yanlış işler.

Bir siteye girmeye çalıştığınızda "Sertifika güvenilmiyor" hatası görüyorsanız, bu büyük olasılıkla zincir/CA sorunudur. "SSL protokol hatası" veya "bağlantı sıfırlandı" hatası görüyorsanız, muhtemelen TLS/şifreleme çakışması vardır.

Kullanıcı için hızlı adımlar (hemen uygulayın)

  1. Uygulama mağazası üzerinden tarayıcıyı ve Android System WebView'i güncelleyin (varsa).
  2. Kendi güven deposuna (trust-store) sahip alternatif bir tarayıcı yükleyin (bu genellikle karmaşık ayarlar olmadan sorunu çözer).
  3. Kontrol için: Aynı cihazda başka bir tarayıcıda siteyi açmayı deneyin. Açılıyorsa, sorun sistem deposunda/yığınındadır.
  4. Yalnızca tamamen emin olduğunuzda: Kök sertifikayı manuel olarak "Ayarlar → Güvenlik → Sertifika yükle" bölümüne ekleyin. Bunu yalnızca güvenilir dahili CA'lar için yapın.

Bilinmeyen kök sertifikaları eklemeyin ve uyumluluk adına şifreleme gereksinimlerini düşürmeyin — bu, trafiğin ele geçirilme riskini artırır.

Sunucu yöneticisi / geliştiricisi ne yapabilir

  • Uyumlu bir sertifika zinciri gönderin: CA böyle bir seçenek sunuyorsa cross-signed (çapraz imzalı) veya alternatif bir zincir kullanın.
  • Sunucunun gerçekten tam zinciri (ara + uyumlu imza) gönderdiğinden emin olun. OpenSSL ile kontrol edin:
    openssl s_client -connect example.com:443 -servername example.com
  • Geniş uyumlu ancak güvenli şifreleme paketleriyle TLS 1.2'yi destekleyin; yalnızca eski istemciler için eski, savunmasız protokolleri etkinleştirmeyin.
  • API için: Eski Android kullanan istemcilere uyumlu zincire sahip ayrı bir uç nokta veya güncellenmiş bir istemci kütüphanesi önerin; uygulamada özel SSLSocketFactory aracılığıyla TLS1.2 açıkça etkinleştirilebilir.

Sık yapılan hatalar

  • Yalnızca "modern" zinciri göndermek ve cross-signed varyantını unutmak — istemciler bozulur.
  • Sorunu güvenliği düşürerek çözmek (SSLv3/TLS1.0 etkinleştirme) — bu kısa vadeli ama tehlikelidir.
  • Sorunun her zaman sunucu tarafında olduğunu düşünmek: bazen suçlu uygulamadaki belirli bir istemci/kütüphanedir.

SSS

  • Android 4'ü kalıcı olarak "tamir" edebilir miyim? Tamamen hayır: İşletim sistemi eskidi. Sorunu kendi yığınına sahip bir tarayıcı veya doğru sunucu yapılandırmasıyla aşabilirsiniz.
  • Sertifikayı RSA/ECDSA olarak değiştirmek yardımcı olur mu? Bazı durumlarda evet — önemli olan sunucunun eski istemcinin tanıdığı bir zincir göndermesidir.
  • Kiosk için daha hızlı olan şey nedir — cihazları güncellemek mi yoksa sunucuyu yapılandırmak mı? Genellikle cihazı değiştirmek veya güncel WebView içeren kontrollü bir derleme kullanmak daha ucuzdur.

Gerekirse belirli bir alan adını kontrol edebilirim: Alan adını gönderin, hangi zinciri ve protokolleri gönderdiğini ve hangi özel ayarların yardımcı olacağını açıklayayım.