首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >elasticsearch集群证书过期导致集群异常问题分析与处理

elasticsearch集群证书过期导致集群异常问题分析与处理

原创
作者头像
空洞的盒子
发布2025-09-01 10:12:41
发布2025-09-01 10:12:41
3690
举报
文章被收录于专栏:JD的专栏JD的专栏大数据生态

报错日志

io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors

Caused by: java.security.cert.CertificateExpiredException: NotAfter: Fri Aug 08 14:26:17 UTC 2025

原因分析

Elasticsearch使用的TLS/SSL证书已经在2025-08-08 14:26:17 UTC到期,证书过期导致集群节点认证失败,所以所有基于HTTPS/SSL的通信都会失败。造成集群状态异常。影像数据写入

解决方法

第一步:使用elasticsearch-certutil重新生成"ca.crt","ca.key"

代码语言:bash
复制
cd /usr/share/elasticsearch
bin/elasticsearch-certutil ca --pem

第二步:使用elasticsearch-certutil生成"node.crt","node.key"

  • --multiple 允许一次生成多个节点证书(会提示你输入各个节点的 IP/HOSTNAME)。
  • 这里我们使用第一步生成的ca.crt与ca.key生成节点证书。这里我们只为其中一台节点生成了node1.crt与node1.key文件。然后将其拷贝至其他节点。

在生成的 zip 里会包含每个节点的node1.crt与node1.key文件。

代码语言:bash
复制
bin/elasticsearch-certutil cert --ca-cert ca/ca.crt --ca-key ca/ca.key --pem --multiple

第三步:修改elasticsearch.yml

将证书配置指向新的证书文件

代码语言:yml
复制
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: /etc/elasticsearch/certs/node1.key
xpack.security.transport.ssl.certificate: /etc/elasticsearch/certs/node1.crt
xpack.security.transport.ssl.certificate_authorities: [ "/etc/elasticsearch/certs/ca.crt" ]

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.key: /etc/elasticsearch/certs/node1.key
xpack.security.http.ssl.certificate: /etc/elasticsearch/certs/node1.crt
xpack.security.http.ssl.certificate_authorities: [ "/etc/elasticsearch/certs/ca.crt" ]

第四步:查看证书有效期

代码语言:javascript
复制
openssl x509 -in node1.crt -noout -dates

返回如下:

证书有效期
证书有效期

第五步:滚动重启集群

依次重启各节点:

代码语言:bash
复制
systemctl restart elasticsearch

FAQ1:替换证书过程中报错

Caused by: javax.net.ssl.SSLHandshakeException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors

原因:在集群替换证书期间出现这个报错是正常的,因为在替换过程中,集群同时使用着两套CA证书与节点证书,等全部节点替换完成,集群正常选举出主节点,该异常将不再出现。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 报错日志
  • 原因分析
  • 解决方法
    • 第一步:使用elasticsearch-certutil重新生成"ca.crt","ca.key"
    • 第二步:使用elasticsearch-certutil生成"node.crt","node.key"
    • 第三步:修改elasticsearch.yml
    • 第四步:查看证书有效期
    • 第五步:滚动重启集群
    • FAQ1:替换证书过程中报错
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档