Я изучаю TrustStrategy для использования в сочетании с RestTemplate.В методе isTrusted проверенные сертификаты (распечатанные) отличаются от сертификатов, определенных в TrustManagerFactory (сертификаты, напечатанные здесь, взяты из файла cacerts).Почему это так?Что происходит за кулисами?
Редактировать: метод isTrusted регистрирует сертификаты моей компании.AcceptIssuers регистрирует сертификаты из файла cacerts.
Edit2: метод TrustStrategy называется временем выполнения.Сертификаты TrustManagerFactory называются временем компиляции.Может быть, это часть проблемы / решения.
TrustStrategy acceptingTrustStrategy = new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
for (X509Certificate certificate: x509Certificates) {
log.info(certificate.getIssuerX500Principal().getName());
}
return true;
}
};
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("X.509");
trustManagerFactory.init((KeyStore) null);
TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
X509TrustManager trustManager = (X509TrustManager) trustManagers[0];
X509Certificate[] acceptedIssuers = trustManager.getAcceptedIssuers();
for(X509Certificate ai : acceptedIssuers) {
log.info(ai.getIssuerX500Principal().getName());
}