上找到证书路径的信任锚点。我需要建立与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