HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)是一种能够保障数据安全的HTTP通道,它是HTTP协议的安全版,通过在HTTP协议的基础上增加安全套接层SSL(Secure Sockets Layer)来保障数据传输的安全性。即HTTPS还是通过HTTP进行通信,只是传输的内容经过了SSL加密。为了保障您数据的安全性,建议开启HTTPS协议。
前提条件
- 创建阿里云ES实例。
具体操作步骤请参见创建阿里云Elasticsearch实例。
- 购买协调节点。
可在创建实例或升配集群时购买,详情请参见升配集群。
- 变更访问阿里云ES实例的客户端代码。不变更会导致无法使用客户端程序访问您的阿里云ES实例。
以官方ES的Rest Client访问方式为例,开启HTTPS后,
HttpHost
中需要加上https
参数,例如new HttpHost("es-cn-xxxxx.elasticsearch.aliyuncs.com", 9200, "https"));
,示例代码如下。- 开启HTTPS前的示例代码
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "Your password")); RestClientBuilder restClientBuilder = RestClient.builder( new HttpHost("es-cn-xxxxx.elasticsearch.aliyuncs.com", 9200)); RestClient restClient = restClientBuilder.setHttpClientConfigCallback( new RestClientBuilder.HttpClientConfigCallback() { @Override public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) { return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); } }).build();
- 开启HTTPS后的示例代码
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "Your password")); RestClientBuilder restClientBuilder = RestClient.builder( new HttpHost("es-cn-xxxxx.elasticsearch.aliyuncs.com", 9200, "https")); RestClient restClient = restClientBuilder.setHttpClientConfigCallback( new RestClientBuilder.HttpClientConfigCallback() { @Override public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) { return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); } }).build();
- 开启HTTPS前的示例代码