当我上传我的应用程序Play商店中它您的应用使用不安全的执行主机名验证

问题描述:

的显示警告当我上传我的应用程序Play商店中它您的应用使用不安全的执行主机名验证

“你的应用程序是使用不安全的执行主机名验证的”

如何解决这个问题。

SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new SecureRandom()); 
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFa‌​ctory()); 
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { 

@Override public boolean verify(String arg0, SSLSession arg1) { 

     return true; 
    } 
}); 
+0

的Java类名必须是不在话下。请张贴,以及。 –

+0

SSLContext sc = SSLContext.getInstance(“SSL”); (null,trustAllCerts,new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HttpsURLConnection.setDefaultHostnameVerifier(新的HostnameVerifier(){ @覆盖 公共布尔验证(字符串为arg0,ARG1的SSLSession){ 回归真实; } }); –

+0

这是我用过的代码 –

您正在使用不安全的实现的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

谢谢你的人,它的工作 –