Я пытаюсь добавить SSL в существующий проект (пружинные загрузочные микросервисы, Java 8), я добавил конфигурацию, и она отлично работает, когда я использую сервис от пользовательского интерфейса или почтальона, но когда я использую сервис используя RestTemplate (совершать звонки между двумя сервисами на разных серверах). Он был заблокирован и выдает следующее сообщение:
2020-01-08 17:22:44,847 151337 ERROR com.xxxx.xxxx.xxxx.ProxyExecuter - error while requesting proxy I/O error on POST request for "https://xxxxxxx:8143/xxxx-xxx/exec/": 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
для конфигурации на стороне сервера. Производственная группа добавила в хранилище ключей действительную сертификацию и, как правило, ее штраф на своей стороне.
Я попытался добавить некоторую конфигурацию, например:
System.setProperty("javax.net.ssl.trustStore", keystore);
SSLContext context = SSLContext.getInstance("TLSv1.2");
context.init(null, null, null);
CloseableHttpClient httpClient = HttpClientBuilder.create().setSSLContext(context)
.build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(factory);
, но не сработал, единственный метод, который мне помог, это отключение проверки хоста и, конечно, это не решение для производственного приложения
заранее благодарю за помощь.