跨主机部署Elasticsearch与Kibana时的证书及认证问题咨询
为什么同服务器部署Elasticsearch和Kibana无需证书验证与认证,跨服务器却需要?
核心原因:Elasticsearch默认安全配置的本地连接豁免机制
Elasticsearch从7.10版本开始默认启用了安全特性(Security),但内置了针对本地(localhost/127.0.0.1)连接的豁免规则,具体逻辑如下:
同服务器部署场景:
Kibana默认会通过localhost或127.0.0.1访问Elasticsearch,符合ES的本地连接豁免条件。此时ES会自动跳过TLS证书验证和身份认证检查,所以你不需要配置证书路径或认证信息就能正常启动。跨服务器部署场景:
当Kibana通过远程IP访问Elasticsearch时,不属于本地豁免范围,ES会强制启用完整的安全校验:- 首先触发TLS证书验证:ES默认会生成自签名的HTTP证书(
http_ca.crt),Kibana作为客户端无法识别这个未被信任的证书,因此抛出self signed certificate in certificate chain错误; - 配置CA证书后,证书验证通过,但ES还要求身份认证——默认情况下ES已经创建了内置用户(如
elastic),Kibana必须提供对应的用户名和密码才能建立连接,所以又出现Missing authentication credentials for REST request错误。
- 首先触发TLS证书验证:ES默认会生成自签名的HTTP证书(
补充说明
你可以查看Elasticsearch的默认配置(无需手动修改config/elasticsearch.yaml),确认安全特性的启用状态:
xpack.security.enabled: true xpack.security.http.ssl.enabled: true
本地连接豁免是ES为简化本地测试场景设计的规则,跨机部署时必须遵循完整的安全流程:配置CA证书、提供合法的认证凭证。
内容的提问来源于stack exchange,提问作者YoavKlein
相关产品推荐
相关产品推荐

