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

Python操作MongoDB出现SSL证书验证失败错误该如何解决?

return (<ServerDescription ('cluster0xxxxmongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('cluster0xxxxmongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129)')>
)
错误根因

这个错误是pymongo驱动与MongoDB服务端建立SSL连接时,校验服务端返回的SSL证书失败导致,通常有两个触发原因:

  1. 你使用的是MongoDB Atlas共享集群,服务端切换了新的根证书,本地Python环境的CA证书库没有收录该新证书
  2. 本地证书库版本过旧,自带的根证书已过期
修复方案

方案1:升级本地CA证书库(生产环境推荐)

  • macOS系统:运行Python自带的证书更新脚本,替换路径中的3.x为你实际使用的Python版本
    /Applications/Python\ 3.x/Install\ Certificates.command
    
  • Windows/Linux系统:升级certifi证书包和pymongo驱动
    pip install --upgrade certifi pymongo
    
    升级完成后重试连接即可恢复。

方案2:临时跳过证书校验(仅开发测试使用)

本地调试时可以在连接参数中关闭证书校验,快速恢复开发流程:

import pymongo

client = pymongo.MongoClient(
    "你的MongoDB连接字符串",
    tlsAllowInvalidCertificates=True
)

警告:该配置会跳过所有SSL安全校验,存在数据泄露风险,禁止在生产环境使用

方案3:手动指定根证书

如果升级证书包后仍报错,可以手动指定MongoDB官方根证书路径进行连接:

import pymongo

client = pymongo.MongoClient(
    "你的MongoDB连接字符串",
    tlsCAFile="你本地保存的根证书文件路径.pem"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:48:03