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

Filebeat 9.0.4无法连接本地Elasticsearch 9.0.3,报SSL握手错误bad_certificate

Filebeat 9.0.4无法连接本地Elasticsearch 9.0.3,报SSL握手错误bad_certificate

看起来你已经跟着官方文档完成了基础配置,甚至能通过浏览器和Kibana正常访问Elasticsearch,但Filebeat的SSL握手报错确实挺让人头疼的。咱们一步步来排查解决这个bad_certificate问题:


1. 先检查指纹的格式是否正确

你用openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt生成的指纹,要注意几个细节:

  • 复制的时候要去掉开头的SHA256 Fingerprint=前缀,只保留后面的XX:XX:XX:...部分
  • 确保没有多余的空格,比如有些终端输出会自动换行,别把换行的空格也复制进去
  • 大小写不影响,但要保证复制的内容和命令输出完全一致(除了前缀)

2. 换个思路:直接用CA证书文件代替指纹

有时候指纹匹配容易因为格式或编码问题出岔子,你可以试试在Filebeat配置里直接指定CA证书文件路径,代替ca_trusted_fingerprint:
修改filebeat.yml的output.elasticsearch.ssl部分:

output.elasticsearch:
  hosts: ["localhost:9200"]
  preset: balanced
  protocol: "https"
  username: "elastic"
  password: "<你的密码>"
  ssl:
    enabled: true
    # 替换成你http_ca.crt的绝对路径
    ca_file: "/full/path/to/config/certs/http_ca.crt"

修改后重启Filebeat,看看是否能正常连接。

3. 验证ES的SSL证书有效性

用openssl命令直接测试和ES的SSL连接,确认证书本身没问题:

openssl s_client -connect localhost:9200 -CAfile config/certs/http_ca.crt

如果命令输出里能看到Verify return code: 0 (ok),说明证书是有效的,问题大概率出在Filebeat的配置或权限上;如果返回错误,那你需要确认ES使用的CA证书是不是你指定的这个文件。

4. 检查Filebeat的文件读取权限

确保Filebeat进程能读取到http_ca.crt文件:

  • 查看证书文件权限:ls -l config/certs/http_ca.crt,至少要保证其他用户有读权限(比如权限是-rw-r--r--)
  • 如果Filebeat用的是专属用户运行(默认是filebeat),可以把证书文件的所属组改成filebeat:chown :filebeat config/certs/http_ca.crt

5. 确认Elasticsearch的SSL配置

检查Elasticsearch的config/elasticsearch.yml,确认以下配置是否正确指向你的CA证书:

xpack.security.http.ssl:
  enabled: true
  certificate_authorities: [ "config/certs/http_ca.crt" ]

如果ES的SSL配置用的是其他证书,那Filebeat用当前的CA肯定会握手失败。


如果以上方法都没解决问题,你可以启动Filebeat时开启SSL调试日志,获取更详细的错误信息:

filebeat -e -d ssl

把调试日志里的SSL相关错误信息贴出来,能帮咱们更精准地定位问题。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 03:08:39