Я пытаюсь вызвать API, используя RestTemplte из службы на сервере A и другой службы на сервере B, и я получаю ошибку ниже:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Даже когда я добавил эту конфигурацию (код ниже ) в шаблоне rest все та же проблема.
SSLContext sslContext = new SSLContextBuilder()
.loadTrustMaterial(new File(keystore), trustStorePassword.toCharArray())
.build();
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext);
HttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(socketFactory)
.build();
HttpComponentsClientHttpRequestFactory factory =
new HttpComponentsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(factory);
решение, которое я нашел на net, состоит в том, чтобы экспортировать сертификат из chrome и добавить его в доверенный сертификат JVM. Я не знаю, является ли это правильным решением, потому что мы можем изменить этот сертификат каждые 3 месяца, например ..
И у меня есть еще несколько вопросов:
JVM знает все центры сертификации (я думаю, что есть миллиард ..), например, когда я звоню в Google с помощью rest, сертификат будет проверен JVM с использованием «security / cacerts»?
Должен ли я добавить наш сертификат в доверенные сертификаты JVM для исправления sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
?
Процесс проверки не автоматизирован c по механизму SSL?
Заранее спасибо.