我有一个非常令人沮丧的 SSL 错误,根据连接顺序,有效证书不受信任。
因此,如果在启动时,我直接连接到服务器 A。信任管理器将无法验证链并出现错误:
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
但是,如果我连接到服务器 B,然后连接到服务器 A,它将信任它之前声称无效的相同证书。
有没有人对可能发生什么导致这种信任失败有任何想法?
这就是我设置信任管理器的方式:
try {
TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
tmf.init((KeyStore) null);
X509TrustManager manager = (X509TrustManager)tmf.getTrustManagers()[0];
manager.checkServerTrusted(chain, authType);
Log.d("Auth","Did trust it");
} catch (Exception e) {
Log.e("Auth","Didn't trust it", e);
}
据我所知,握手之前发生的所有事情在不同的连接之间都是相同的。唯一的区别是地址。这是在像素 3 上的 android 10 上运行时发生的。