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

Haystack的ElasticsearchDocumentStore无法连接运行中的Elasticsearch容器

解决Haystack ElasticsearchDocumentStore SSL证书验证失败问题

针对你遇到的Docker部署Elasticsearch 8.5.1能通过官方客户端/requests连接,但Haystack的ElasticsearchDocumentStore报SSL证书验证失败的问题,可尝试以下几种解决方案:

1. 测试环境临时禁用SSL验证

仅建议在开发测试环境使用,生产环境请勿禁用证书验证:

from haystack.document_stores import ElasticsearchDocumentStore

document_store = ElasticsearchDocumentStore(
    host="localhost",  # 替换为你的ES主机地址
    port=9200,
    username="elastic",
    password="你的ES密码",
    scheme="https",
    verify_certs=False,  # 关闭证书验证
    ssl_show_warn=False  # 屏蔽SSL警告信息
)

2. 导入ES容器生成的CA证书(生产环境推荐)

Docker部署的Elasticsearch会自动生成CA证书,将证书复制到本地后指定给ElasticsearchDocumentStore:

  1. 从ES容器复制CA证书到本地:
docker cp <你的ES容器名称>:/usr/share/elasticsearch/config/certs/ca/ca.crt ./es-ca.crt
  1. 在代码中指定证书路径:
from haystack.document_stores import ElasticsearchDocumentStore

document_store = ElasticsearchDocumentStore(
    host="localhost",
    port=9200,
    username="elastic",
    password="你的ES密码",
    scheme="https",
    ca_certs="./es-ca.crt"  # 指定本地CA证书路径
)

3. 确认关键参数配置

  • 必须指定scheme="https":Elasticsearch 8.x默认启用SSL,9200端口为HTTPS端口,若遗漏该参数会导致连接协议不匹配。
  • 检查host/port是否正确:确保和你用requests/官方客户端连接时的地址一致。

4. 确保依赖版本兼容性

确认elasticsearch-py版本与Elasticsearch 8.5.1完全匹配,Haystack的ElasticsearchDocumentStore依赖该库,版本不匹配可能引发SSL相关异常:

pip install elasticsearch==8.5.1 --force-reinstall

内容的提问来源于stack exchange,提问作者Kadri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:45:45