Как java проверить сертификат - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь вызвать 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. Я не знаю, является ли это правильным решением, потому что, например, мы можем менять этот сертификат каждые три месяца.

И у меня есть еще несколько вопросов:

  • Знает ли 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?

...