Elasticsearch 7.15.0配置Transport Layer Security后启动失败如何解决?
Elasticsearch TLS配置后启动失败排查方案
注意:适用Elasticsearch版本为7.15.0
优先查看Elasticsearch本身的运行日志定位根因,默认日志路径为 /var/log/elasticsearch/<集群名称>.log(你配置的集群名称是my-cluster,对应日志文件为/var/log/elasticsearch/my-cluster.log),比systemctl status和journalctl的输出更精准。
常见故障原因&解决方法
- 证书生成步骤不完整
你当前只生成了CA根证书,缺少节点通信所需的证书文件:
- 进入
/usr/share/elasticsearch/bin目录后,执行命令生成节点证书:./elasticsearch-certutil cert --ca elastic-stack-ca.p12- 按照提示操作(如果不需要设置密码直接回车即可),生成的
elastic-certificates.p12才是配置文件中指定的证书文件,将该文件移动到/etc/elasticsearch目录下。
- 证书权限错误
Elasticsearch默认以elasticsearch用户运行,无法读取root用户创建的证书文件,执行命令修改权限:
chown elasticsearch:elasticsearch /etc/elasticsearch/elastic-certificates.p12 chmod 600 /etc/elasticsearch/elastic-certificates.p12
YAML配置格式错误
检查elasticsearch.yml中新增的配置是否符合YAML语法规范:所有配置项顶格写,冒号后必须加空格,不要使用制表符缩进。证书密码未录入ES密钥库
如果你生成证书时设置了密码,需要执行以下命令将密码存入ES密钥库:
./elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password ./elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
执行时按照提示输入你设置的证书密码即可。
验证方法
修改完成后可以先前台启动Elasticsearch直接查看运行输出,确认无报错再后台运行:sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch
如果控制台输出无报错,说明配置正确,再按正常流程重启服务即可。
内容的提问来源于stack exchange,提问作者sabri mahmoud
相关产品推荐
相关产品推荐

