When asking questions, please provide the following information:
Guys i have a cluster which is running with elasticsearch 5.6.2, and it has searchguard plugin enabled, also SSL is enabled for both the transport layer as well as the http layer, when i execute the following curl command from the terminal
curl -k -u user:password https://localhost:9200
, the response is returned and its fine, but when i instantiate a high level rest client using the following code
public RccRestClient()
throws NodeValidationException, IOException, CertificateException, NoSuchAlgorithmException,
KeyStoreException, KeyManagementException, UnrecoverableKeyException {
SSLContextBuilder sslBuilder = SSLContexts.custom()
//.loadTrustMaterial(new File("/Users/kumard/Desktop/elasticsearch-5.6.2/config/truststore.jks"),"password".toCharArray());
.loadKeyMaterial(new File("/Users/kumard/Desktop/elasticsearch-5.6.2/config/0-keystore.jks"),"password".toCharArray(),"password".toCharArray());
final SSLContext sslContext = sslBuilder.build();
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("user", "password"));
Header[] defaultHeaders = new Header[] {
new BasicHeader("Authorization", "Basic " + encodeBase64("user:password".getBytes())) };
RestClientBuilder restClientBuilder = RestClient
.builder(new HttpHost("localhost",
Integer.valueOf("9200"), "https"))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
});
// .setHttpClientConfigCallback(
// new RestClientBuilder.HttpClientConfigCallback() {
// @Override
// public HttpAsyncClientBuilder customizeHttpClient(
// HttpAsyncClientBuilder httpClientBuilder) {
// httpClientBuilder.setDefaultHeaders(Arrays.asList(defaultHeaders));
// httpClientBuilder.setSSLContext(sslContext);
// return httpClientBuilder;
// }
// }
//
// );
restClientBuilder.setMaxRetryTimeoutMillis(10000);
restClientBuilder.setDefaultHeaders(defaultHeaders);
restClientBuilder.setFailureListener(new RestClient.FailureListener() {
@Override
public void onFailure(HttpHost host) {
LOGGER.error("Couldn't initialize Low Level Rest Client");
System.exit(-1);
}
});
i am getting IO exception saying with timeouts, there is no error being logged. what is the correct way to achieve this.
-
Search Guard and Elasticsearch version
-
Installed and used enterprise modules, if any
-
JVM version and operating system version
-
Search Guard configuration files
-
Elasticsearch log messages on debug level
-
Other installed Elasticsearch or Kibana plugins, if any