如何在 Elasticsearch 中配置 SSL / TLS ?

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)

bash 复制代码
./bin/elasticsearch-certutil ca

当提示输入 CA 文件的名称时,按 enter 键使用默认名称或设置新名称。

使用创建的 CA,为 Elasticsearch 节点生成证书。

bash 复制代码
./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 文件填写如下配置:

bash 复制代码
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 是否正常工作。

bash 复制代码
curl -k  https://localhost:9200

-k 选项允许 curl 在不验证证书的情况下进行连接,这对于使用自签名证书进行初始测试非常有用。如果一切配置正确,您应该从 Elasticsearch 收到一个 JSON 响应。

我的开源项目

相关推荐
九圣残炎3 分钟前
【ElasticSearch】 Java API Client 7.17文档
java·elasticsearch·搜索引擎
risc1234562 小时前
【Elasticsearch】HNSW
elasticsearch
我的棉裤丢了3 小时前
windows安装ES
大数据·elasticsearch·搜索引擎
乙卯年QAQ5 小时前
【Elasticsearch】RestClient操作文档
java·大数据·elasticsearch·jenkins
超级阿飞10 小时前
利用Kubespray安装生产环境的k8s集群-实施篇
elasticsearch·容器·kubernetes
小诺大人20 小时前
Docker 安装 elk(elasticsearch、logstash、kibana)、ES安装ik分词器
elk·elasticsearch·docker
forestsea1 天前
【Elasticsearch 】 聚合分析:桶聚合
大数据·elasticsearch·搜索引擎
乙卯年QAQ1 天前
【Elasticsearch】Springboot编写Elasticsearch的RestAPI
spring boot·elasticsearch
liupenglove1 天前
使用tritonserver完成clip-vit-large-patch14图像特征提取模型的工程化。
人工智能·深度学习·elasticsearch·计算机视觉·golang·自动驾驶
P7进阶路1 天前
Elasticsearch(ES)基础查询语法的使用
python·elasticsearch·django