因SSL证书过期无法连接MongoDB Atlas集群问题求助
问题根因
该SSL证书校验失败报错,是Windows 10系统根证书库中MongoDB Atlas依赖的Let's Encrypt根证书过期/缺失导致的,该问题会同时影响代码连接和MongoDB Compass的集群连接。
修复步骤
临时测试验证
先在数据库连接URI末尾追加tlsAllowInvalidCertificates=true参数,临时跳过证书校验,确认是否是证书问题导致的连接失败:
DB_URI='mongodb+srv://<username>:<password>@clusterdetails/databasename?retryWrites=true&w=majority&tlsAllowInvalidCertificates=true'
注意:该配置仅可用于临时测试,生产环境禁止使用,会存在严重的安全风险
如果测试后可以正常连接,按照如下步骤执行永久修复:
永久修复系统根证书
- 按下
Win+R组合键,输入certmgr.msc回车打开证书管理器 - 依次展开【受信任的根证书颁发机构】→【证书】目录
- 在列表中查找名为
DST Root CA X3的过期证书,右键选择删除 - 重启电脑,Windows会自动同步拉取最新的
ISRG Root X1根证书到系统库中
修复Python依赖兼容性(可选)
如果完成证书修复后代码仍报错,升级pymongo和flask-mongoengine到最新稳定版即可:
pip install --upgrade pymongo flask-mongoengine
修复MongoDB Compass连接
根证书更新完成后,打开Compass的连接配置页,在【TLS/SSL】设置项中选择【使用系统CA证书】,保存配置后重启Compass即可正常连接。
内容的提问来源于stack exchange,提问作者Adithya Narayan
相关产品推荐
相关产品推荐

