升级pymongo至4.6.3后MongoDB连接证书验证失败求助
解决pymongo 4.6.3连接MongoDB的SSL证书验证失败问题
问题原因
pymongo 4.x版本调整了SSL连接的默认配置,相比3.13版本启用了更严格的证书验证逻辑。之前3.13版本可能隐式允许跳过自签名证书的验证,而4.6.3默认要求证书必须由可信CA签发,因此连接使用自签名证书的MongoDB时触发错误。
解决方案
1. 指定自签名CA证书路径(推荐生产环境使用)
将MongoDB的CA证书文件路径传入连接参数,让pymongo信任该证书:
from pymongo import MongoClient # 替换为你的CA证书实际路径 client = MongoClient( "mongodb://ip-xx-xxx-xx-xx.ec2.internal:27017/", ssl=True, ssl_ca_certs="/path/to/your/ca-cert.pem" )
2. 临时禁用证书验证(仅测试环境使用)
如果是测试场景,可临时关闭证书验证,但生产环境禁止使用:
import ssl from pymongo import MongoClient client = MongoClient( "mongodb://ip-xx-xxx-xx-xx.ec2.internal:27017/", ssl=True, ssl_cert_reqs=ssl.CERT_NONE )
3. 关闭SSL连接(如果MongoDB未配置SSL)
若你的MongoDB服务未启用SSL,显式关闭ssl参数即可:
from pymongo import MongoClient client = MongoClient( "mongodb://ip-xx-xxx-xx-xx.ec2.internal:27017/", ssl=False )
内容的提问来源于stack exchange,提问作者user3734568
相关产品推荐
相关产品推荐

