全部產品
Search
文件中心

Elasticsearch:使用HTTPS協議

更新時間:Jun 30, 2024

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)是一種能夠保障資料安全的HTTP通道,它是HTTP協議的安全版,通過在HTTP協議的基礎上增加安全套接層SSL(Secure Sockets Layer)來保障資料轉送的安全性。即HTTPS還是通過HTTP進行通訊,只是傳輸的內容經過了SSL加密。為了保障您資料的安全性,建議使用HTTPS協議。本文介紹如何使用HTTPS協議。

前提條件

您已完成以下操作:

  • 建立Elasticsearch執行個體。

    具體操作,請參見建立Elasticsearch執行個體

  • 變更訪問Elasticsearch執行個體的用戶端代碼。不變更會導致無法使用用戶端程式訪問執行個體。

    以官方Elasticsearch的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();

操作步驟

  1. 登入Elasticsearch控制台
  2. 在左側導覽列,單擊Elasticsearch執行個體
  3. 進入目標執行個體。
    1. 在頂部功能表列處,選擇資源群組和地區。
    2. Elasticsearch執行個體中單擊目標執行個體ID。
  4. 在左側導覽列,單擊安全配置

  5. 叢集網路設定地區,開啟使用HTTPS協議開關。

    警告

    啟用和關閉HTTPS服務會中斷服務,並且會觸發叢集重啟,為保證您的業務不受影響,請確認後操作。

  6. 操作提示對話方塊中,選中確認已經修改訪問Elasticsearch執行個體的代碼,單擊確認

    操作提示

    說明

    部分版本須購買協調節點,開啟使用HTTPS協議開關後,系統會提示您購買協調節點。請按照提示購買協調節點後再操作。

    確認後叢集會重啟,重啟過程中可在工作清單中查看重啟進度。重啟完成後,即可使用HTTPS協議訪問Elasticsearch執行個體。

常見問題

Q:開啟HTTPS後,如何擷取認證?

A:為了提高Elasticsearch的安全性及穩定性,暫不支援對外提供認證。