使用Mongoose连接AWS DocumentDB报错ssl_ca_certs选项不支持
Mongoose连接AWS DocumentDB报
MongoParseError: option ssl_ca_certs is not supported修复方案 问题原因
- 参数名不兼容:Node.js版MongoDB驱动(Mongoose内置依赖)不支持下划线格式的
ssl_ca_certs参数,该参数是其他语言驱动/旧版Mongo Shell的配置项,Node驱动识别时会直接抛出解析错误。 - SSL证书配置缺失:AWS DocumentDB默认使用自签名根证书,本地连接必须携带对应CA证书才能完成SSL校验,未正确配置证书时部分场景下驱动会自动尝试拼接不兼容参数触发报错。
- 配置冲突:同时在连接URI和connect选项中重复声明SSL相关参数,容易触发参数解析异常。
修复步骤
- 下载AWS DocumentDB官方CA根证书,将证书文件放到本地项目目录中,例如命名为
rds-combined-ca-bundle.pem。 - 调整连接代码,使用Node驱动兼容的驼峰格式
sslCA参数传入证书内容,移除URI中多余的重复SSL声明,参考代码如下:
const mongoose = require('mongoose'); const fs = require('fs'); const path = require('path'); // 读取本地存放的CA证书 const caContent = fs.readFileSync(path.join(__dirname, 'rds-combined-ca-bundle.pem')); // 注意替换连接串中的账号、密码为真实值,移除URI中重复的ssl=true声明避免冲突 const connURI = 'mongodb://username:your_real_password@docdb-2022-05-31-18-46-43.cluster-cnyrbefiq91q.eu-west-2.docdb.amazonaws.com:27017/?replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'; mongoose.connect(connURI, { ssl: true, sslCA: caContent, // 正确的证书参数名,不要写ssl_ca_certs useNewUrlParser: true, useUnifiedTopology: true })
- 额外排查项:
- 确认本地网络可以访问DocumentDB实例的27017端口,DocumentDB默认部署在VPC私有网络内,本地直连需要提前配置公网访问、端口转发或VPC对等连接。
- 如果账号密码包含特殊字符,需要先做URL编码再填入连接串。
- 如果你使用的是Mongoose 6+版本,可以移除
useNewUrlParser、useUnifiedTopology配置项,这些参数在新版本中已经作为默认配置启用,不需要手动声明。
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

