当前位置: 首页 > news >正文

ES证书过期替换方案

简介: 在生产环境中,Elasticsearch 集群的证书可能会因为过期而导致集群无法正常工作。为了避免这种情况的发生,我们需要及时更新证书,并保证更新证书的过程中保持 Elasticsearch 集群的高可用性和数据安全性。

 

集群环境


ES集群版本:v6.810和v7.13.4

加密参数配置:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

通过配置文件看到,只针对集群中节点之间的通信进行了加密,而且是自签的CA。

生成证书为您的Elasticearch集群创建一个证书颁发机构。例如,使用elasticsearch-certutil ca命令:

bin/elasticsearch-certutil ca --days 36500

为群集中的每个节点生成证书和私钥。例如,使用elasticsearch-certutil cert 命令:

bin/elasticsearch-certutil cert  --days 36500 --ca elastic-stack-ca.p12

 

 

发现过期


通过批量扫描集群信息,发现证书过期

GET /_ssl/certificates
[{"path" : "certs/elastic-certificates.p12","format" : "PKCS12","alias" : "instance","subject_dn" : "CN=Elastic Certificate Tool Autogenerated CA","serial_number" : "e365c63bf8050b2d1a73025c37aaa6d8d0772f06","has_private_key" : false,"expiry" : "2023-04-26T09:13:27.000Z"},{"path" : "certs/elastic-certificates.p12","format" : "PKCS12","alias" : "instance","subject_dn" : "CN=instance","serial_number" : "bff8e3ed43fcc2abc4e6951bd6064ed53ddb7b56","has_private_key" : true,"expiry" : "2023-04-26T09:13:44.000Z"},{"path" : "certs/elastic-certificates.p12","format" : "PKCS12","alias" : "ca","subject_dn" : "CN=Elastic Certificate Tool Autogenerated CA","serial_number" : "e365c63bf8050b2d1a73025c37aaa6d8d0772f06","has_private_key" : false,"expiry" : "2023-04-26T09:13:27.000Z"}
]

 

 

参考因素

  1. 是否会导致节点间通信异常
  2. 是否需要重启节点,滚动重启还是全部停掉再启动
  3. 服务连接是否受影响,数据一致性是否有保障

 

解决方案 及问题

基于ES6.8.10-ARC(通用3节点集群) 验证测试

遇到问题:

将证书设置1天过期,过期之后查看,集群还是正常运行(各种方式查看新证书确实都生效了)

结论总结:
1.批量下发证书,从各个节点日志可以看出,证书已更新

 [2023-04-26T10:12:41,125][INFO ][o.e.x.c.s.SSLConfigurationReloader] [es_10.4.6.2_9211] reloaded [/work/idb/es9211/config/certs/elastic-certificates.p12] and updated ssl contexts using this file

2.集群中的某个节点,重启时,如果自己的证书和其他节点不一致,可以启动但是无法被其他节点识别,无法加入集群 

直接替换证书,自动就被其他节点识别到,然后节点正常加入集群 

 3.查询命令:

查询证书过期

GET /_ssl/certificates

验证证书是否有效

curl -X GET "http://escluster111.es.zcinc.com:9211/_cluster/health?pretty" -uelastic:OWRmNjA5MDlkNGM3 --cacert elastic-certificates.p12
GET /_nodes?filter_path=**.transport.ssl

 

 

官网说明


关于证书更新的文档,版本:>=7.13

如果使用相同的CA,签发新的证书,替换原来的文件,是不需要重启节点的

如果使用不同的CA,签发新的证书,替换原来的文件,是需要滚动重启的

这里有3个点需要注意:

  1. 没有小于<7.13的版本文档说明,但是我测试6.8.10,重启和不重启,都能查询到新的证书
  2. 测试6.8.10证书过期,集群依然可以正常使用,读写、新连接,都没有影响,具体原因不清楚
  3. 为了安全,还是批量替换证书,并滚动重启一遍

以下是官网文档说:

Updating node security certificates | Elasticsearch Guide [7.13] | Elastic

使用相同的CA:

Update certificates with the same CA | Elasticsearch Guide [7.13] | Elastic

使用不同的CA:

Update security certificates with a different CA | Elasticsearch Guide [7.13] | Elastic

http://www.lryc.cn/news/401559.html

相关文章:

  • 计算机网络——网络层(IP地址与MAC地址、地址解析协议ARP、IP数据报格式以及转发分组、ICMP、IPV6)
  • 音视频入门基础:H.264专题(13)——FFmpeg源码中通过SPS属性获取视频色彩格式的实现
  • WEB前端05-JavaScrip基本对象
  • 新手教学系列——简单的服务配置项集中管理
  • 《0基础》学习Python——第十三讲__面向对象
  • 前端JS特效第42波:纯CSS实现的卡片切换效果
  • 2.10、matlab中字符、数字、矩阵、字符串和元胞合并为字符串并将字符串以不同格式写入读出excel
  • 中文科技核心论文发表
  • 使用 Flask 3 搭建问答平台(一):项目结构搭建
  • 力扣经典题目之->用队列实现栈 的详细讲解和实现,看这一篇就够了!
  • [JS]认识feach
  • tomcat如何进行调优?
  • 复现GMM文章(一):图1代码和数据
  • 链接追踪系列-07.logstash安装json_lines插件
  • 火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?
  • 使用加密软件对企业来说有什么好处
  • STM32入门开发操作记录(二)——LED与蜂鸣器
  • n3.平滑升级和回滚
  • C#WPF DialogHost.Show 弹出对话框并返回数据
  • Kafka Producer发送消息流程之分区器和数据收集器
  • Codeforces Round 958 (Div. 2)
  • <数据集>猫狗识别数据集<目标检测>
  • Figma 中文版指南:获取和安装汉化插件
  • 用c语言写一个贪吃蛇游戏
  • 计算机网络入门 --网络模型
  • 陪玩系统小程序模式APP小程序H5系统搭建开发
  • 算法训练营day72
  • C语言------指针讲解(2)
  • 大数据技术基础
  • 【文心智能体】前几天百度热搜有一条非常有趣的话题《00后疯感工牌》,看看如何通过低代码工作流方式实现图片显示