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

使用Let's Encrypt证书的MongoDB SSL连接未过期却突发失效问题咨询

问题根因分析

1. 核心根因:Let's Encrypt证书链配置不兼容

你遇到的是典型的Let's Encrypt旧交叉根证书过期导致的客户端校验失败问题。Nginx如果仅配置ssl_certificate为站点证书单文件,未携带完整的中间证书链,旧版本客户端的根证书存储中没有内置新的ISRG Root X1根证书,就会判定证书过期或不可信。
老版本的requests 2.3.0配套的CA证书包没有包含ISRG Root X1,升级requests时会同步升级certifi依赖包,更新了CA根证书存储,因此Python侧恢复正常。

2. Mongo Compass连接失败的直接原因

Mongo Compass内置的CA证书存储未同步更新,如果你使用的Compass版本较旧,默认信任的根证书列表中仍没有ISRG Root X1,同时你的Nginx返回的证书链缺少Let's Encrypt的中间证书,就会导致Compass无法向上追溯到可信根,误判证书过期。

3. 其他潜在触发原因

  • Nginx TCP流代理的SSL配置错误:stream块下的SSL代理需要确认ssl_certificate参数指向的是fullchain.pem而非单独的cert.pem,单独的cert.pem不包含中间证书,会导致所有需要完整链校验的客户端校验失败。
  • 证书自动更新脚本异常:虽然证书本身没有过期,但更新后没有重新加载Nginx配置,或者更新后的证书链文件被替换为了单证书文件,导致证书链断裂。
  • Mongo Compass的SSL配置问题:Compass连接时如果勾选了「需要验证服务器证书」,但没有手动导入ISRG Root X1根证书,同时服务端返回的链不完整,就会持续报错。
修复方案
  • 优先修正Nginx配置:将stream块下的ssl_certificate参数值替换为Let's Encrypt生成的fullchain.pem路径,ssl_certificate_key保持为privkey.pem路径,修改后执行nginx -s reload重载配置即可修复大多数客户端的校验问题。
  • 针对Mongo Compass的遗留问题:要么升级到最新版的Mongo Compass(新版本已内置ISRG Root X1根证书),要么在连接配置的高级设置中手动导入ISRG Root X1根证书即可正常连接。
  • 确认证书自动更新的钩子配置:确保certbot等证书更新工具在证书更新完成后会自动重载Nginx配置,避免新证书不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:54:00