应用程序运行正常,同时在Google Play Consol
中上传错误以下的应用程序漏洞TrustManager 要正确处理SSL证书验证,请在自定义X509TrustManager接口的checkServerTrusted方法中更改代码,以便在服务器提供的证书不符合您的期望时引发CertificateException或IllegalArgumentException。要确认您已正确更新,请将更新后的版本提交给开发者控制台,并在五小时后再回来查看。如果应用尚未正确升级,我们将显示警告。 有关其他信息和后续步骤,请参阅此Google帮助中心文章。
我使用了以下API调用代码
DefaultHttpClient client=null;
try {
SchemeRegistry schemeRegistry = new SchemeRegistry();
// http scheme
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
// https scheme
schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));
HttpParams mHttpParams = new BasicHttpParams();
mHttpParams.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
mHttpParams.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(30));
mHttpParams.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
HttpProtocolParams.setVersion(mHttpParams, HttpVersion.HTTP_1_1);
ClientConnectionManager cm = new ThreadSafeClientConnManager(mHttpParams, schemeRegistry);
client = new DefaultHttpClient(cm, mHttpParams);
} catch (Exception e) {
e.printStackTrace();
client = new DefaultHttpClient();
}
我的网址是基于HTTP的IP
我在下面用过X509TrustManager x509trustmanager-from-google trusting-all-certificates-using-httpclient
答案 0 :(得分:3)
这是一个警告说,您使用不安全的X509TrustManager
空checkClientTrusted()
和checkServerTrusted()
方法。这些方法假设将客户端和服务器证书作为HTTPS合同的一部分进行检查,并在给定证书无效时抛出异常。通过将这些方法保持为空,您可以打破整个HTTPS安全性,因为您的代码将接受任何证书。例如,您的应用易受a man in the middle attack攻击。这种空实现几乎与普通的HTTP实现相同。
使用SSLSocketFactory.getSocketFactory()
代替new EasySSLSocketFactory()
可以解决问题。您的应用连接的服务器必须具有有效的CA签名证书。
答案 1 :(得分:0)
最后问题是由于ACRA lib我删除了ACRA&慌张
在谷歌播放上成功上传应用
Answer