【发布时间】:2014-02-25 16:46:33
【问题描述】:
我开发了使用 Volley 的 android 应用程序。 所有通信都是通过 HTTPS 连接完成的。 因为我是在本地环境下测试的,所以我使用Tomcat的自签名证书。
以前,我只有 android 2.3 和 3.0 设备。现在我也有了 4.1 和 4.4。
我的实现使用这种方法:http://developer.android.com/training/articles/security-ssl.html(部分未知的证书颁发机构) 在 Android 最高 4.1 的设备上,它可以完美运行。带有自定义证书的 SSLSocketFactory 被传递给 Volley:
Volley.newRequestQueue(getApplicationContext(), new HurlStack(null, socketFactory));
但是在 Android 4.1+ 上会发生什么? 为什么它不起作用? 我也尝试过像这样的 NullX509TrustManager:
private static class NullX509TrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
}
但是还是不行……
【问题讨论】:
标签: android ssl ssl-certificate x509certificate android-volley