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

Django使用djongo连接Mongo Atlas报SSL证书验证失败如何解决

问题根因

该报错是Mongo Atlas使用的Let's Encrypt根证书过期,本地Python依赖的根证书库未更新到新的有效根证书,导致SSL校验失败。

解决方案

按优先级从高到低选择即可:

  • 方案1:升级根证书和Mongo驱动依赖(优先选择,不降低安全性)
    运行如下命令升级依赖:
    pip install --upgrade pymongo certifi
    
    升级完成后重启Django服务,90%以上场景可直接解决问题。
  • 方案2:手动指定根证书路径
    如果升级依赖后仍报错,可在数据库配置中显式指定certifi库提供的根证书路径,修改settings.py的数据库配置如下:
    import certifi
    DATABASES = {
        'default': {
                'ENGINE': 'djongo',
                'NAME': 'DbName',
                'ENFORCE_SCHEMA': False,
                'CLIENT': {
                    'host': 'mongodb+srv://username:password@cluster0.mny7y.mongodb.net/DbName?retryWrites=true&w=majority',
                    'tlsCAFile': certifi.where()
                }  
        }
    }
    
    修改后重启服务即可。
  • 方案3:临时跳过证书校验(仅本地测试应急使用,禁止生产环境配置)
    本地测试时如果需要快速恢复,可在数据库连接串后追加tlsAllowInvalidCertificates=true参数跳过SSL校验,修改后的host配置如下:
    'mongodb+srv://username:password@cluster0.mny7y.mongodb.net/DbName?retryWrites=true&w=majority&tlsAllowInvalidCertificates=true'
    
    该方案会降低数据传输安全性,生产环境绝对不能使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:42:02