Truly, I already asked the question in stackoverflow but didn't receive an answer yet, so I also create a new topic here..
I’m a newbie in ES and I have a task in my new job to upgrade from 6.4.2 to 7.4.1 – From TCP client to Rest High Level API.
Previously we built the client like this (with SSL & Certificate):
Settings settings = Settings.builder() .put("xpack.security.user", String.format("%s:%s",esJavaUser,esJavaPassword)) .put("cluster.name", esClusterName) .put("xpack.security.transport.ssl.enabled", xpackSecurityTransportSslEnabled) .put("xpack.ssl.certificate_authorities", xpackSslCertificateAuthorities) .build(); client = new PreBuiltXPackTransportClient(settings);
Now, in rest API, it’s changed to this:
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(esJavaUser, esJavaPassword)); RestClientBuilder restClientBuilder = RestClient.builder(hosts) .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder .setDefaultCredentialsProvider(credentialsProvider)); restHighLevelClient = new RestHighLevelClient(restClientBuilder);
With this build I set ES user and password by CredentialsProvider but what about
certificate_authorities”? how should I provided them with rest API?