上找到證書路徑的信任錨點。我需要建立與https://free.temafon.ru的https連接,但我在Android 2.3及更低版本上有CertPathValidatorException。我做了什麼。HttpsUrlConnection:沒有在2.3
- 通過Firefox獲取https://free.temafon.ru的所有證書。
- 導入證書在密鑰庫中的序列從temefon證書的根證書。
初始化SSL上下文:
最終密鑰庫密鑰庫= KeyStore.getInstance( 「BKS」);
keystore.load(getResources().openRawResource(R.raw.temafon), "W0d3Uoa5PkED".toCharArray()); final TrustManager trustManager = new TemafonTrustManager(keystore); final SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, new TrustManager[] { trustManager }, null); HttpsURLConnection.setDefaultSSLSocketFactory(sslContext .getSocketFactory());
在這裏,我用custom TrustManager,因爲服務器在錯誤的順序發送證書。
此代碼在Android 4.0上正常工作,但在2.3上失敗java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
我在做什麼?
我創建了一個測試項目,可以發現here。
你找到一個解決的辦法?我正在處理同樣的問題。 – jimbob
不幸的是,我最終接受了2.3的所有證書。 – Bracadabra