更新了我的应用程序以信任 sdk 17 及以下版本的 volley 中的所有证书,因为对于更高版本的 sdk,volley 无需主机名验证器即可正常工作。它工作正常,但谷歌拒绝了我的应用程序更新说
您的应用程序正在使用 HostnameVerifier 接口的不安全实现。
我正在使用以下代码
TrustManager[] trustAllCertsc = new TrustManager[] { new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
} };
SSLContext scc = null;
try {
scc = SSLContext.getInstance("SSL");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
try {
scc.init(null, trustAllCertsc, new java.security.SecureRandom());
} catch (KeyManagementException e) {
e.printStackTrace();
}
HttpsURLConnection.setDefaultSSLSocketFactory(scc.getSocketFactory());
// Create all-trusting host name verifier
HostnameVerifier allHostsValidc = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
// Install the all-trusting host verifier
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValidc);
删除所有该代码。您将无法通过多次 Play 商店检查(HostnameVerifier
和一个接受所有TrustManager
)。另外,Play 商店拒绝您的应用程序的原因是,通过此代码,你正在削弱应用程序的安全性.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)