基于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

EFK教程(4) - ElasticSearch集群TLS加密通讯的更多相关文章

  1. EFK-4::ElasticSearch集群TLS加密通讯

    转载自:https://mp.weixin.qq.com/s?__biz=MzUyNzk0NTI4MQ==&mid=2247483822&idx=1&sn=6813b22eb5 ...

  2. EFK教程(5) - ES集群开启用户认证

    基于ES内置及自定义用户实现kibana和filebeat的认证 作者:"发颠的小狼",欢迎转载 目录 ▪ 用途 ▪ 关闭服务 ▪ elasticsearch-修改elastics ...

  3. Elasticsearch 集群 单服务器 超级详细教程

    前言 之前了解了Elasticsearch的基本概念.将spring boot + ElasticSearch + head插件 搞通之后.紧接着对es进行下一步的探索:集群.查阅资料的过程中,找到了 ...

  4. ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程

    前言 本文主要介绍的是ElasticSearch集群和kinaba的安装教程. ElasticSearch介绍 ElasticSearch是一个基于Lucene的搜索服务器,其实就是对Lucene进行 ...

  5. Elasticsearch集群搭建教程及生产环境配置

    Elasticsearch 是一个极其强大的搜索和分析引擎,其强大的部分在于能够对其进行扩展以获得更好的性能和稳定性. 本教程将提供有关如何设置 Elasticsearch 集群的一些信息,并将添加一 ...

  6. ELK教程1:ElasticSearch集群的部署ELK

    在分布式系统中,应用数量众多,应用调用链复杂,常常使用ELK作为日志收集.分析和展示的组件.本篇文章将讲讲解如何部署ELK,然后讲解如何使用Filebeat采集Spring Boot的日志输出到Log ...

  7. ElasticSearch 集群安全

    公号:码农充电站pro 主页:https://codeshellme.github.io 在安装完 ES 后,ES 默认是没有任何安全防护的. ES 的安全管理主要包括以下内容: 身份认证:鉴定访问用 ...

  8. 使用Elasticsearch Operator快速部署Elasticsearch集群

    转载自:https://www.qikqiak.com/post/elastic-cloud-on-k8s/ 随着 kubernetes 的快速发展,很多应用都在往 kubernetes 上面迁移,现 ...

  9. elasticsearch 集群的安装部署

    一 介绍 elasticsearch 是居于lucene的搜素引擎,可以横向集群扩展以及分片,开发者无需关注如何实现了索引的备份,集群同步,分片等,我们很容易通过简单的配置就可以启动elasticse ...

随机推荐

  1. 《JavaScript设计模式与开发实践》-- 策略模式

    详情个人博客:https://shengchangwei.github.io/js-shejimoshi-celue/ 策略模式 1.定义 策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们 ...

  2. Java 方法重载 (Overload)

    对重载 (Overload) 的认识 为什么要用方法重载: 对于功能类似的方法来说,因为参数列表不一样,如果定义不同名称的方法,太麻烦且难以记忆. 为了解决这个问题,引入方法的重载. 重载的定义: 多 ...

  3. 在虚拟机上的关于Apache(阿帕奇)(4)基于域名访问网站

    这篇随笔是基于域名访问网站,和前后两篇文章基于ip和基于端口一起练习效果更好 首先配置网卡Ip地址与hosts文件 输入命令:  vi  /etc/hosts/ (每行只能写一条,格式为IP地址+空格 ...

  4. wpf使用技巧

    1.设置资源 <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries ...

  5. TCP/IP协议第一卷第三章 IP首部分析

    IP介绍 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP.IGMP数据都以IP数据报格式传输. IP提供不可靠.无连接的数据报传送服务. 不可靠(unreliable)它不能 ...

  6. AndroidOS体系结构

    首先上图一张 对照着图,我们再来看Android 系统的体系结构就爽多了.我们从底层向上进行分析. 一.Linux 内核层 Linux Kernel 基于linux2.6.其核心系统服务如安全性.内存 ...

  7. 伪紫题p5194 天平(dfs剪枝)

    这题作为一个紫题实在是过分了吧...绿的了不起了.—————————————————————————— 看题第一眼,01背包无误.2min打好一交全屏紫色(所以这就是这题是紫色的原因233?) re原 ...

  8. Project Euler 58: Spiral primes

    从一开始按以下方式逆时针旋转,可以形成一个边长为七的正方形螺旋: 一个有趣的现象是右下对角线上都有一个奇完全平方数,但是更有趣的是两条对角线上的十三个数中有八个数是素数(已经标红),也就是说素数占比为 ...

  9. .net core 对象序列化为Json及Json反序列化关于DataContractJsonSerializer和Newtonsoft使用的完整案例,源码已更新至开源模板

    很多人告诉你怎么用,但是却不会告诉你用什么好.不知道在进行序列化和反序列化Json时用那个好,因为有太多选择,如.NET Framework下可以选DataContractJsonSerializer ...

  10. Scrapy进阶知识点总结(三)——Items与Item Loaders

    一.Items 抓取的主要目标是从非结构化源(通常是网页)中提取结构化数据.Scrapy蜘蛛可以像Python一样返回提取的数据.虽然方便和熟悉,但Python缺乏结构:很容易在字段名称中输入拼写错误 ...