如何在 Elasticsearch 中配置 SSL / TLS ?

鸠摩智首席音效师發表於2024-11-20

How to Configure SSL/TLS in Elasticsearch

Elasticsearch 是一種流行的開源搜尋和分析引擎。它被廣泛用於日誌或活動資料分析,全文搜尋和複雜查詢。但是,沒有適當的安全措施,敏感資料可能很容易受到影響攔截和未經授權的訪問。在 Elasticsearch 中啟用 SSL/TLS 是保護資料的關鍵步驟。

本指南將介紹配置 SSL/TLS 的詳細步驟,從而保證 Elasticsearch 叢集的安全性。

Step 1: Generate SSL/TLS Certificates

第一步是為您的 Elasticsearch 節點生成 SSL/TLS 證書。如果您使用自簽名證書進行測試,
Elasticsearch 的 elasticsearch-certutil 工具可以簡化此過程。對於生產環境,建議使用由可信賴 CA 簽發的證書。

使用 elasticsearch-certutil 工具建立一個 Certificate Authority (CA)

./bin/elasticsearch-certutil ca

當提示輸入 CA 檔案的名稱時,按 enter 鍵使用預設名稱或設定新名稱。

使用建立的 CA,為 Elasticsearch 節點生成證書。

./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

該命令生成一個 .p12 (PKCS#12) 檔案,其中封裝了節點的證書、私鑰和 CA 證書。

請把 elastic-stack-ca.p12 替換為 CA 證書儲存的實際路徑。

您可能需要為叢集中的每個節點生成特定的證書,具體取決於您的設定。

Step 2: Configure Elasticsearch to Use SSL Certificate

擁有 SSL/TLS 證書後,您需要配置 Elasticsearch 使用它們,這涉及編輯群集中每個節點上的 elasticsearch.yml 配置檔案。

每個節點上的 elasticsearch.yml 檔案填寫如下配置:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate 
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12

請把 elastic-certificates.p12 替換為 證書儲存的實際路徑。

Step 3: Restart Elasticsearch

配置所有節點後,重新啟動您的 elasticsearch 群集以應用更改。

Step 4: Verify SSL/TLS Configuration

使用 Curl 之類的工具向 Elasticsearch HTTP API 發出請求,驗證 SSL/TLS 是否正常工作。

curl -k  https://localhost:9200

-k 選項允許 curl 在不驗證證書的情況下進行連線,這對於使用自簽名證書進行初始測試非常有用。如果一切配置正確,您應該從 Elasticsearch 收到一個 JSON 響應。

我的開源專案

酷瓜雲課堂-開源知識付費解決方案

  • course-tencent-cloud(酷瓜雲課堂 - gitee倉庫)
  • course-tencent-cloud(酷瓜雲課堂 - github倉庫)

相關文章