У меня действительно расстраивающая ошибка SSL, когда в зависимости от порядка подключения действительный сертификат не является доверенным.
Так что, если при запуске я подключаюсь напрямую к серверу А., диспетчер доверия не сможет проверить цепочка с ошибкой: 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);
}
Насколько я могу сказать все это происходит до того, как рукопожатие идентично между различными соединениями. Разница только в адресе. Это происходит при работе на android 10 на пикселе 3.