Elasticsearch生成注册令牌失败及SSL配置问题咨询
Elasticsearch:注册令牌生成错误排查及HTTP/Transport SSL区别说明
Transport SSL 与 HTTP SSL 的核心区别
- Transport SSL:仅作用于Elasticsearch集群内部节点间的TCP通信,用于保障集群内节点发现、数据同步等内部交互的安全性,不影响外部客户端(如Kibana、curl)通过HTTP/HTTPS连接ES。
- HTTP SSL:作用于外部客户端与Elasticsearch节点的HTTP通信层,开启后客户端需通过HTTPS访问ES;同时这是生成enrollment令牌的必要条件——令牌用于外部服务(如Kibana)验证并连接ES的HTTP端点,ES需确认HTTP层已配置合法的SSL密钥库。
问题解决步骤
1. 修复elasticsearch.yml的YAML语法错误
配置加载失败的原因是YAML语法不规范:冒号:后必须添加空格,否则会被判定为无效格式。修正后的完整SSL配置如下:
xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: elastic-certificates.p12 # 修正后的HTTP SSL配置 xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.type: PKCS12 xpack.security.http.ssl.keystore.path: elastic-certificates.p12
2. 重启Elasticsearch节点
配置修正后,重启ES服务使新配置生效:
# 以systemd部署环境为例,其他环境替换对应重启命令 sudo systemctl restart elasticsearch
3. 重新生成enrollment令牌
ES重启完成后,执行令牌生成命令:
# 生成用于Kibana注册的令牌 elasticsearch-create-enrollment-token -s kibana # 如需生成集群节点注册令牌,执行以下命令 elasticsearch-create-enrollment-token -s node
此时HTTP层已正确配置SSL密钥库,满足令牌生成的前置要求,可正常生成注册令牌。
内容的提问来源于stack exchange,提问作者attack
相关产品推荐
相关产品推荐

