Если вы создаете RestHighLevelClient
самостоятельно (или управляете созданием этого объекта), вы можете использовать конструктор, который принимает RestClientBuilder
.
Используйте метод RestClient.builder()
для создания RestClientBuilder
с кастомом SSLContext
.Следующее от Исходный код Elasticsearch :
RestClientBuilder builder = RestClient.builder(
new HttpHost("localhost", 9200, "https"))
.setHttpClientConfigCallback(new HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(
HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setSSLContext(sslContext);
}
});
В вашем случае вам нужно создать SSLContext, который доверяет всем хостам:
SSLContext context = SSLContext.getInstance("SSL")
context.init(null, new TrustManager[] {
new X509TrustManager {
void checkClientTrusted(X509Certificate[] chain, String authType) {}
void checkServerTrusted(X509Certificate[] chain, String authType) {}
void getAcceptedIssuers() { return null; }
}
}, null);
Выше полностьюне проверено, но может помочь вам начать.Не стесняйтесь обновить этот ответ с более подробной информацией, если он работает для вас.