当我将我的应用程序上传到Playstore时,它会显示警告
"您的应用正在使用主机名验证程序"
的不安全实施
如何解决这个问题。
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;
}
});
答案 0 :(得分:1)
您正在使用HostnameVerifier接口的不安全实现
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override public boolean verify(String arg0, SSLSession arg1) {
return true;
}
});
Playstore现在非常严格。 您可以查看此link以获取更多信息。
只要服务器的主机名不符合您的期望,而不是true总是返回false。
改为使用
@Override
public boolean verify(String arg0, SSLSession arg1) {
HostnameVerifier hv = HttpsURLConnection.getDefaultHostnameVerifier();
return hv.verify("your_domain.com", arg1);
}