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

使用Djongo连接Django与MongoDB时遇SSL错误求助

解决Django连接MongoDB迁移时出现的ssl.SSLError: [ASN1] nested asn1 error

以下是几个针对性的解决方法,按优先级尝试:

  • 检查MongoDB连接字符串的SSL配置
    如果你使用托管集群(比如MongoDB Atlas),默认强制SSL,但本地测试或自签证书场景容易出问题。打开settings.py,确认DATABASES中的SSL参数配置:

    DATABASES = {
        'default': {
            'ENGINE': 'djongo',
            'NAME': 'django',
            'CLIENT': {
                'host': 'mongodb+srv://your-cluster-url/',
                # 若为测试环境,可临时关闭SSL排查问题(生产环境禁用此操作)
                'ssl': False,
                # 若使用自签证书,指定CA证书路径
                # 'ssl_ca_certs': '/absolute/path/to/ca-certificate.pem'
            }
        }
    }
    
  • 验证SSL证书的完整性与格式
    ASN1错误大多和证书损坏、格式错误有关。用OpenSSL命令检查证书有效性:

    openssl x509 -in your-cert.pem -text -noout
    

    如果命令报错,说明证书存在问题,重新下载或生成符合PEM格式的有效证书。

  • 更新依赖库版本
    pymongo或djongo的旧版本可能存在SSL兼容性bug,执行以下命令升级到稳定版:

    pip install --upgrade pymongo djongo
    
  • 检查系统SSL库版本
    老旧的OpenSSL版本会导致ASN1解析失败,先查看当前版本:

    openssl version
    

    若版本低于1.1.1,建议更新系统SSL库:

    • Ubuntu/Debian:sudo apt update && sudo apt install openssl
    • CentOS/RHEL:sudo yum update openssl
  • 确认MongoDB集群的SSL规则
    登录集群管理后台,检查是否强制要求SSL连接。如果是强制模式,必须确保客户端配置了匹配的证书;若允许非SSL连接,可先切换为兼容模式测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:05:32