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认证,默认为full xpack.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" # 开启kibana sudo -u kibana /opt/kibana/bin/kibana -c /opt/kibana/config/kibana.yml
附. 参考文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-tls.html https://www.elastic.co/guide/en/elasticsearch/reference/7.3/certutil.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring Boot 2.1.11 发布
Spring Boot 2.1.11 发布了,更新内容如下: Bug 修复 配置 Netty 时将忽略 server.ssl.key-alias#19197 在一个项目中使用多个数据库时,Liquibase 执行器端点无法提供正确的信息#19171 当 Rabbit 配置为没有协议的地址时,ssl.enabled 将被忽略#19109 在 CloudFoundryVcapEnvironmentPostProcessor 中使用 DeferredLog#19027 @SpyBean(MockitoPostProcessor) 尝试初始化 @StepScope Bean 超出范围#19020 如果存在正确的权限,则 HealthWebEndpointMapper 应公开详细信息#18998 Spring Boot - Maven 插件损坏#18936 BasicJsonParser 无法正确处理 [ 和 { 之间的空格#18911 @ServletComponentScan 不适用于组件索引#18910 更新说明:https://github.com/spring-projects/spr...
- 下一篇
MaxCompute问答整理之11月
本文是基于本人对MaxCompute产品的学习进度,再结合开发者社区里面的一些问题,进而整理成文。希望对大家有所帮助。 问题一、请问MySQL中IFNULL对应到MaxCompute中的函数是什么?NVL,MaxCompute中有内建函数可以使用,与MySQL和Oracle有对应的函数。可以参考官方文档:https://help.aliyun.com/document_detail/96342.html 问题二、如何将UNIX时间转换为MaxCompute所需日期?使用MaxCompute中的内建函数 FROM_UNIXTIME。此函数是将数字型的UNIX时间日期值unixtime转为日期值。可参考官方文档:https://help.aliyun.com/document_detail/48974.html 问题三、目前MaxCompute Spark支持原生Spark哪个版本?目前支持Spark-1.6.3和Spark-2.3.0两个版本。如何Spark on MaxCompute可以参考一下云栖社区一篇文章:https://yq.aliyun.com/articles/728374...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启