You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决elasticsearch-setup-passwords适配自签名证书报错问题

错误原因

SSL connection to https://10.0.2.26:9200/_security/_authenticate?pretty failed: No subject alternative names matching IP address 10.0.2.26 found
Please check the elasticsearch SSL settings under xpack.security.http.ssl.

该报错是因为你启用了Xpack安全的HTTP层SSL配置,当前使用的自签名证书的**主题备用名称(SAN)**字段未包含访问时使用的节点IP 10.0.2.26,导致客户端证书校验不通过。

解决方案

合规修复方案(无需关闭证书校验,适配生产环境)

  • 方案1:重新生成含对应SAN的自签名证书
    使用Elasticsearch自带的elasticsearch-certutil工具生成证书时,把所有会用到的访问地址(节点IP、集群内部Service域名、外部访问域名等)都加入SAN字段,示例生成命令:
    bin/elasticsearch-certutil cert --name es-node --ip 10.0.2.26 --dns elasticsearch-headless.default.svc.cluster.local --pem
    
    生成后替换K8S中挂载ES证书的Secret,重启ES集群后再执行密码设置命令即可。
  • 方案2:使用证书已支持的域名访问
    默认部署生成的自签名证书一般会预配置集群内部的Service域名,执行密码设置命令时指定内部域名地址即可绕过IP校验问题:
    bin/elasticsearch-setup-passwords interactive -u "https://<ES服务名称>.<命名空间>.svc.cluster.local:9200"
    

临时跳过证书校验方案(仅测试环境使用,不推荐生产环境操作)

  • 方案1:使用命令自带的跳过校验参数
    Elasticsearch 7.x版本的elasticsearch-setup-passwords命令支持--insecure参数直接跳过证书校验,执行命令改为:
    bin/elasticsearch-setup-passwords interactive --insecure
    
  • 方案2:临时关闭HTTP层SSL
    修改ES配置文件elasticsearch.yml,临时关闭HTTP SSL配置:
    xpack.security.http.ssl.enabled: false
    
    如果你是通过K8S部署,需要修改对应StatefulSet关联的ConfigMap/Secret中存储的配置,重启ES集群生效后执行密码设置命令,操作完成后再将配置改回true重启即可。

内容的提问来源于stack exchange,提问作者Joey Yi Zhao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:15:08