当我尝试将应用程序上传到 google play 时,我收到一条消息。“接口 x509trustmanager 的不安全实现”。在来自 Google Play 的消息中,它说:
为避免验证 SSL 证书时出现问题,请更改 X509TrustManager 接口中 checkServerTrusted 方法的代码,以便在检测到可疑证书时抛出 CertificateException 或 IllegalArgumentException。
我发现的所有选项都使用 checkValidity 方法来验证证书,但 Google 还添加了:
不要使用 checkValidity 来验证服务器的证书。此方法检查证书的有效性,而不是其安全性。
如何正确更改 checkServerTrusted 方法的代码?我当前的 x509TrustManager 实现:
X509TrustManager trustManager = new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
X509Certificate[] cArrr = new X509Certificate[0];
return cArrr;
}
@Override
public void checkServerTrusted(final X509Certificate[] chain,
final String authType) throws CertificateException {
try {
chain[0].checkValidity();
} catch (Exception e) {
throw new CertificateException("Certificate not valid or trusted.");
}
}
@Override
public void checkClientTrusted(final X509Certificate[] chain,
final String authType) throws CertificateException {
}
};