千家信息网

EFK教程(4) - ElasticSearch集群TLS加密通讯

发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,基于TLS实现ElasticSearch集群加密通讯作者:"发颠的小狼",欢迎转载目录▪ 用途▪ ES节点信息▪ Step1. 关闭服务▪ Step2. 创建CA证书▪ Step3. 创建CERT证书
千家信息网最后更新 2025年02月13日EFK教程(4) - ElasticSearch集群TLS加密通讯

基于TLS实现ElasticSearch集群加密通讯

作者:"发颠的小狼",欢迎转载


目录

▪ 用途
▪ ES节点信息
▪ Step1. 关闭服务
▪ Step2. 创建CA证书
▪ Step3. 创建CERT证书
▪ Step4. 创建密钥库
▪ Step5. 删除CA证书
▪ Step6. 修改elasticsearch.yml配置
▪ Step7. 启动服务
▪ 附. 参考文档


用途

前情提要:

▷ 在第一篇《EFK教程 - 快速入门指南》中,阐述了EFK的安装部署,其中ElasticSearch的架构为三节点,即master、ingest、data角色同时部署在三台服务器上。
▷ 在第二篇《EFK教程 - ElasticSearch高性能高可用架构》中,阐述了EFK的data/ingest/master角色的用途及分别部署三节点,在实现性能最大化的同时保障高可用。
▷ 在第三篇《EFK教程(3) - ElasticSearch冷热数据分离》中,阐述了ES多实例部署,将不同热度的数据存在不同的磁盘上,实现了数据冷热分离、资源合理分配。

前三篇文章,ES集群之间数据交互都是明文交互,而在本文中,为ES集群创建CA、CERT证书,实现ElasticSearch集群之间数据通过TLS进行双向加密交互。


ES节点信息

由于本文是基于上一篇文章《EFK教程(3) - ElasticSearch冷热数据分离》为环境进行阐述,因此节点信息和上一篇一致:


Step1. 关闭服务

首先,需要停止所有ElasticSearch、kibana、filebeat服务,待证书配置完成后再启动


Step2. 创建CA证书

1️⃣ 找任一一台ElasticSearch节点服务器操作即可

cd /opt/elasticsearch/# --days: 表示有效期多久sudo -u elasticsearch ./bin/elasticsearch-certutil ca --days 3660

2️⃣ 务必将生成的CA证书,传到安全地方永久存储,因为后期若需要新增ES节点,还会用到该证书


3️⃣ 请将elastic-stack-ca.p12证书传到所有ES实例服务器上


Step3. 创建CERT证书

按上面表格进入相对应的目录创建CERT证书

# 在ES目录中建立证书目录及给予elasticsearch权限mkdir -p config/certs;chown elasticsearch.elasticsearch config/certs -R# 每一个实例一个证书# --ca CA证书的文件名,必选参数# --dns 服务器名,多服务器名用逗号隔开,可选参数# --ip 服务器IP,多IP用逗号隔开,可选参数# --out 输出到哪里,可选参数# --days 有效期多久,可选参数sudo -u elasticsearch ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 --ip ${本机IP},127.0.0.1 --out config/certs/cert.p12 --days 3660# 例如elasticsearch-master-1(192.168.1.31)执行命令:sudo -u elasticsearch ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 --ip 192.168.1.31,127.0.0.1 --out config/certs/cert.p12 --days 3660


如果想批量生成CERT证书,请自行查阅附录链接,不过批量生成有时会碰到生成的证书不可用,因此建议一台一台生成


Step4. 创建密钥库

按上面表格进入相对应的目录创建密钥库

# 每一个实例都要操作# 创建密钥库sudo -u elasticsearch ./bin/elasticsearch-keystore create# PKCS#12文件的密码sudo -u elasticsearch ./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password# 信任库的密码sudo -u elasticsearch ./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password



确认keystore、truststore已录入至密钥库

sudo -u elasticsearch ./bin/elasticsearch-keystore list


Step5. 删除CA证书

由于上面创建的elastic-stack-ca.p12含有私钥,因此为了安全,建议将该文件删除(请务必提前备份好,因为后期增加节点还会用到)

按上面表格进入相对应的目录删除CA证书

rm -f elastic-stack-ca.p12

Step6. 修改elasticsearch.yml配置

按上面表格对应的实例配置conf目录下elasticsearch.yml

# 在所有实例上加上以下配置# 开启transport.ssl认证xpack.security.transport.ssl.enabled: true# xpack认证方式 full为主机或IP认证及证书认证,certificates为证书认证,不对主机和IP认证,默认为fullxpack.security.transport.ssl.verification_mode: full# xpack包含私钥和证书的PKCS#12文件的路径xpack.security.transport.ssl.keystore.path: certs/cert.p12# xpack包含要信任的证书的PKCS#12文件的路径xpack.security.transport.ssl.truststore.path: certs/cert.p12

Step7. 启动服务

# 开启所有ES实例sudo -u elasticsearch ./bin/elasticsearch# 开启filebeat/opt/filebeat/filebeat -e -c /opt/filebeat/filebeat.yml -d "publish"# 开启kibanasudo -u kibana /opt/kibana/bin/kibana -c /opt/kibana/config/kibana.yml

附. 参考文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-tls.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/7.3/certutil.html
证书 服务 节点 实例 目录 数据 服务器 认证 参数 密钥 文件 生成 配置 教程 集群 表格 信息 冷热 用途 加密 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库备份恢复心得 巴南区工商软件开发流程服务电话 广东常用软件开发参考价 中国网络安全技术大会投稿 选哪种软件开发票 公司网络安全知识讲座报道 数据库查询商品的单价 根服务器很难被研发出来吗 网络安全最新犯罪 服务器搭建邮件poster mc服务器最大内存 我的世界修仙类的服务器 网络安全日为什么是15日 芊缘网络技术有限公司 网络安全的鉴别服务 网络安全技术加密技术 汽车电子软件开发哪个专业可以做 如何查询数据库类型 我的世界服务器权限在哪 手机网络安全心得体会100 软件开发国家相关规范 学怎么做app软件开发 计算机网络技术升本率高吗 国研网建材工业数据库 互联网引领科技跨界融通案例 苏州佳都网络技术有限公司 江西数据库防护箱行业 游戏中的服务器宣传视频 计算机软件开发包含什么 计算机数据库方向的论文题目
0