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

OpenSearch 2.0.1 Python客户端连接报SSL证书验证失败错误

问题根因

SSL证书校验失败的核心原因是Python客户端配置的信任CA证书路径错误:
你代码中ca_certs_path填写的是服务端节点证书/etc/opensearch/cert.pem,但客户端校验服务端证书合法性时,需要的是签发该证书的根CA/完整信任链文件,也就是你opensearch.yml中配置的/etc/opensearch/fullchain.pem。
OpenSearch Dashboard能正常连接,是因为它的配置中正确引用了信任链文件,和你Python代码里填的证书文件不是同一个,所以不会报错。

修复步骤
  • 修正CA证书路径配置
    将代码中CA路径修改为完整证书链路径:
ca_certs_path = '/etc/opensearch/fullchain.pem'
  • 校验证书文件读取权限
    确认运行Python脚本的用户对该证书文件有读权限,可执行以下命令检查:
ls -l /etc/opensearch/fullchain.pem

如果返回的权限位没有全局读权限,测试环境可直接执行以下命令添加权限:

chmod 644 /etc/opensearch/fullchain.pem
  • 跳过代码直接验证证书链有效性
    在运行脚本的服务器上执行openssl命令,直接验证服务端返回的证书是否能被指定CA信任,排除代码逻辑干扰:
openssl s_client -connect 10.83.5.67:9200 -CAfile /etc/opensearch/fullchain.pem

如果返回结果末尾显示Verify return code: 0 (ok),说明证书链校验正常,此时再运行Python代码即可正常连接。

  • 临时调试方案(仅测试环境可用,生产环境禁止)
    如果只是临时验证功能,不想排查证书问题,可以直接关闭证书校验快速连通:
client = OpenSearch(
    hosts = [{'host': host, 'port': port}],
    http_compress = True,
    http_auth = auth,
    use_ssl = True,
    verify_certs = False,
    ssl_assert_hostname = False,
    ssl_show_warn = False
)
兼容问题提示

你当前使用的Python 3.6已停止官方维护,高版本opensearchpy在Python 3.6环境下存在SSL参数传递的已知bug,如果修正CA路径后仍然报错,可以将opensearchpy降级到和OpenSearch版本匹配的2.0.0版本:

pip3 install opensearchpy==2.0.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:27:32