当我上传我的应用程序Play商店中它您的应用使用不安全的执行主机名验证
问题描述:
的显示警告当我上传我的应用程序Play商店中它您的应用使用不安全的执行主机名验证
“你的应用程序是使用不安全的执行主机名验证的”
如何解决这个问题。
SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override public boolean verify(String arg0, SSLSession arg1) {
return true;
}
});
答
您正在使用不安全的实现的HostnameVerifier接口的位置
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override public boolean verify(String arg0, SSLSession arg1) {
return true;
}
});
Play商店中是非常严格的关于它的这些日子。 您可以检查link了解更多信息。
当服务器的主机名不符合您的期望时,不是true,而是始终返回false。
在那里而是使用
@Override
public boolean verify(String arg0, SSLSession arg1) {
HostnameVerifier hv = HttpsURLConnection.getDefaultHostnameVerifier();
return hv.verify("your_domain.com", arg1);
}
+0
谢谢你的人,它的工作 –
的Java类名必须是不在话下。请张贴,以及。 –
SSLContext sc = SSLContext.getInstance(“SSL”); (null,trustAllCerts,new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HttpsURLConnection.setDefaultHostnameVerifier(新的HostnameVerifier(){ @覆盖 公共布尔验证(字符串为arg0,ARG1的SSLSession){ 回归真实; } }); –
这是我用过的代码 –