Android 为X509TrustManager实现checkServerTrusted的正确方法
如何为Android 为X509TrustManager实现checkServerTrusted的正确方法,android,ssl,android-security,Android,Ssl,Android Security,如何为X509TrustManager实施checkServerTrusted方法的推荐方法是什么?我需要为ssl固定使用重新实现,但我始终可以看到这种实现: public void checkServerTrusted(X509Certificate[] certificates, String authType) throws CertificateException { if ((certificates != null) && (certificates.
X509TrustManager
实施checkServerTrusted
方法的推荐方法是什么?我需要为ssl固定使用重新实现,但我始终可以看到这种实现:
public void checkServerTrusted(X509Certificate[] certificates, String authType)
throws CertificateException {
if ((certificates != null) && (certificates.length == 1)) {
certificates[0].checkValidity();
} else {
standardTrustManager.checkServerTrusted(certificates, authType);
}
}
摘自此。然而,在我看来,这似乎是错误的。
它只检查证书是否有效(未过期),而不检查其他内容
请问您有什么可以推荐给我的实现吗?好的,解决方案不是使用自定义的
TrustManagers
,而是用我的固定ssl证书初始化密钥库。好的,解决方案不是使用自定义的TrustManagers
,而是使用我的锁定ssl证书初始化KeyStore
。通常您希望锁定密钥,而不是证书。密钥固定允许您频繁地轮换证书,如每30天轮换一次,从而使CRL保持较小。小型CRL对于移动客户端非常重要。根据您的PKI的大小,它对桌面客户端也可能很重要。您的意思是用证书初始化您的信任存储。通常您希望锁定密钥,而不是证书。密钥固定允许您频繁地轮换证书,如每30天轮换一次,从而使CRL保持较小。小型CRL对于移动客户端非常重要。取决于您的PKI有多大,它对桌面客户端也可能很重要。您的意思是用证书初始化您的信任存储。