2013-03-01 14 views
6

Farklı sunuculardan (http ve https) görüntüleri alan bir projede çalışıyorum. Https bağlantısı, Android 2.3 ve 4 arasındaki farklar

Ben Android 2.3 içinde No peer certificate error sorununu önlemek için this usefull Q/A bulundu, ancak Android 4 (> 3), bu sorunun içinde (" No peer certificate error") sunma değildi neden ben anlayamıyorum.

yanılıyorsam beni düzeltin:

Android 2.3 olarak HTTPS bağlantısı tüm sertifika kontrolleri (ve el sıkışmaları) gerçekleştirir
  • ;
  • Android'de> 3, el sıkışma başarısız olsa bile HTTPS bağlantısı kuruldu (Örn: uygulamam, eş olarak, sertifikayı almadı).

Android'in bu sürümü arasındaki farklar nelerdir? Neden Niçin Android 2.3'teki güvenine güvenin ve Android 4'te değil?

Neden Android 2.3 Şu istisnayı alıyorum: "javax.net.ssl.SSLPeerUnverifiedException: No peer certificate error" Android 4'te her şey iyi çalışıyor ve bağlantı kurulmuþ?

Her şey Server Name Indication ile ilgili, Android Honeycomb?

+0

Çözüm veya fark mı istiyorsunuz? –

+0

Android sürümü arasındaki fark. SO çözümleri ile dolu. – StarsSky

+0

Kodunuz 2.3 üzerinde çalışıyor mu? –

cevap

2

Onaylama yetkiniz muhtemelen Android'in 2.3.3 sürümünde listelenmemiş, ancak 4.x sürümündedir. Her iki cihazda da anahtar deposunu kontrol edin.

ADB'yi komut satırından kullanarak, bir dosyanın anahtar deposunu doldurabilir ve bu yayıncının anahtar deponuzda bulunup bulunmadığını kontrol edebilirsiniz (kök olması gerekebilir). adb pull /system/etc/security/cacerts.bks

İndir cacerts.bks ve Portecle yükleyin (from: http://portecle.sourceforge.net/) Dosya/Aç Keystore ... ve cacerts.bks dosyasını seçin. Araçlar/Anahtar Deposu Raporu'nu seçin ve web tarayıcısında bulunan sertifikada belirtilen CN'yi aramak için bu bilgileri bir metin düzenleyicisine kopyalayın. Benim durumumda "Cybertrust Public SureServer SV CA" dan bir tane bulamadım.

Bilgisayarınızın web tarayıcısını kullanarak https://example.website.com/ numaralı telefonu kullanarak ilgilenen web sitesine göz atın ve CN'nin kim olduğunu öğrenin. Bunu, yukarıda gösterildiği gibi anahtar deposuyla karşılaştırın. Anahtar deposunda değilse, eklemeniz gerekecek.

NOT: Android 4.0 telefonlarının sertifikaları depolamak için farklı bir yöntemi vardır ve aşağıda belirtilen cacerts.bks dosyasını kullanmayın. Onlar için web tarayıcısında istenen https sitesini açabilmeniz ve istenen sertifikaları bu şekilde ekleyebilmeniz gerekir.

Facebook ve redbox'a bağlantı sorunları yaşadım. Benim sorunu çözmek ve ben android 3.2 emülatörü birini kopyalanan benim android 2.3.3 telefon sertifikalarını güncellemek ve telefonuma koymak için:

  1. oluşturun ve bir android 3.2 sanal cihazı başlatmak.
  2. cacerts.bks dosyasını öykünücüye kopyalayın (diğer aygıtınızın bağlı olmadığından emin olun). adb pull /system/etc/security/cacerts.bks özetleri.bks
  3. Taklitçiyi ayırın.
  4. Güncellenecek cihazınızı bağlayın (kök olması gerekir). Okuma/yazma yetenekleri için/system klasörünü rw olarak yeniden yazmanız gerekebilir. sorunları montaj için bkz: this link
  5. kaydet cihazınızdan eski sertifika dosyasının bir kopyasını: adb pull /system/etc/security/cacerts.bks
  6. güncellenme sertifika dosyasını koyun cacerts.bks.old senin cihaz adb push cacerts.bks/sistem/etc/güvenlik/
  7. yeniden Başlatma cihazı
  8. takın ve yeni cacert dosya yüklendi doğrulayın.
+0

Sertifika mevcut: CN = VeriSign Sınıf 3 Kamu Birincil Sertifika Yetkilisi - G5, OU = "(c) 2006 VeriSign, Inc. - Yalnızca yetkili kullanım içindir", OU = VeriSign Güven Ağı, O = "VeriSign, Inc. ", C = US StarsSky

+0

@StarsSky Çalıştığınız sitenin adresini sağlayabilir misiniz? – RightHandedMonkey

+0

Kwystore'imde orta sınıfa benziyor gibi görünüyor: VeriSign Sınıf 3 Uluslararası Sunucu CA - G3. Sebebi olabilir mi? – StarsSky

İlgili konular