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

本地启用TLS的MongoDB执行mongodump报错证书无IP SAN如何解决?

问题根因

报错核心是你使用的自签名TLS证书未将127.0.0.1加入IP SAN(使用者可选名称)字段,MongoDB依赖的Go语言标准库从1.15版本起默认忽略证书CN(通用名称)字段,仅校验SAN字段,你之前设置的GODEBUG=x509ignoreCN=0参数值错误,无法生效。

解决方案
  • 方案1:临时跳过证书校验(仅推荐测试环境使用)
    在mongodump命令中添加--sslInsecure参数,跳过证书域名/IP校验,修改后的命令如下:
mongodump --ssl --sslInsecure --authenticationDatabase admin --host=127.0.0.1 --port=27017 -u=admin -p=821ewuyuiuw3! --sslPEMKeyFile=/etc/ssl/mongodb.pem --sslCAFile=/etc/ssl/rootCA.pem --archive=/home/backups/mongodump.gz --gzip

注意该方案会放弃TLS的身份校验能力,存在中间人攻击风险,不可用于生产环境。

  • 方案2:修正GODEBUG参数(临时兼容方案,后续Go版本可能移除该特性)
    将参数值改为1即可开启旧版CN校验逻辑,执行命令:
export GODEBUG=x509ignoreCN=1

再执行原mongodump命令即可。

  • 方案3:重新生成带IP SAN的自签名证书(生产环境推荐)
    生成证书时在openssl配置中添加IP SAN规则:
subjectAltName = IP:127.0.0.1

用新生成的证书替换原有服务端和客户端使用的证书,即可永久解决该问题。

  • 方案4:使用域名连接
    如果现有证书的SAN字段已包含对应域名,可修改本地hosts将域名指向127.0.0.1,再将mongodump命令的--host参数改为对应域名即可完成校验。

注:当前报错与MongoDB授权配置无关,你已关闭授权校验,命令中的-u、-p、--authenticationDatabase参数可直接删除不影响执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:54:02