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倉庫)