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

如何用PyMongo连接Azure Cosmos DB Emulator?证书验证失败求助

解决PyMongo连接Azure Cosmos DB Emulator的SSL证书验证失败问题

问题原因

报错[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate的核心原因是:Azure Cosmos DB Emulator使用自签名SSL证书,而PyMongo默认会严格验证证书合法性,因此触发连接失败。

可行解决方案

方案1:禁用SSL证书验证(仅开发环境使用)

直接修改MongoClient的连接参数,添加ssl_cert_reqs=CERT_NONE跳过证书验证逻辑:

# 先导入ssl模块
import ssl
import pymongo

# 初始化客户端时添加ssl验证参数
client = pymongo.MongoClient(
    "mongodb://localhost:C2y6yDjf5%2FR%2Bob0N8A7Cgv30VRDJIWEHLM%2B4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw%2FJw%3D%3D@localhost:10255/admin?ssl=true",
    ssl_cert_reqs=ssl.CERT_NONE
)

注意:此方法仅适用于本地开发环境,生产环境绝对不能禁用证书验证。

方案2:导入Emulator自签名证书到Python信任库

如果需要保留证书验证逻辑,可以将Emulator的自签名证书添加到Python的信任列表中:

  1. 导出证书:右键点击系统托盘里的Azure Cosmos DB Emulator图标,选择「Export SSL Certificate」,将证书保存为cosmos_emulator.cer格式文件。
  2. 添加到Python信任库:
    • 找到Python安装路径下的Lib\site-packages\certifi\cacert.pem文件
    • 打开cosmos_emulator.cer,复制从-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----的全部内容
    • 将复制的证书内容粘贴到cacert.pem文件的末尾,保存文件

验证连接

修改代码或配置后重新运行测试脚本,即可正常连接到Cosmos DB Emulator的MongoDB端点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:32:36