要不要再翻翻文档呢?

es集群开启ssl后,java如何连接es集群

Elasticsearch | 作者 porchidy | 发布于2021年01月26日 | 阅读数:2847

版本7.9.1,我在es集群开启了ssl认证,应如何连接到es集群?我尝试了如下的方式:
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password));

Path keyStorePath = Paths.get("C:/Users/porchidy/Desktop/fsdownload/ca.crt");
String keyStorePass = "";
KeyStore truststore = KeyStore.getInstance("jks");
try {
InputStream is = Files.newInputStream(keyStorePath);
try {
truststore.load(is, keyStorePass.toCharArray());
} catch (Exception e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
SSLContextBuilder sslBuilder = null;
try {
sslBuilder = SSLContexts.custom().loadTrustMaterial(truststore, null);
} catch (Exception e) {
e.printStackTrace();
}
final SSLContext sslContext = sslBuilder.build();

RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
httpHosts).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {

@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {

httpClientBuilder.disableAuthCaching();

httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
return httpClientBuilder
.setSSLContext(sslContext)
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE);
}
}));
但是提示错误:java.io.IOException: Invalid keystore format;请问应该如何处理
已邀请:

要回复问题请先登录注册