我正在使用猫鼬在启用ssl选项的情况下连接到mongodb
我写了以下代码:
var certFileBuf = fs.readFileSync(config.db[name].sslCertPath);
conn[name] = mongoose.createConnection(config.db[name].conn, {
user: config.db[name].user,
pwd: config.db[name].pwd,
server: {
sslCA: certFileBuf, ssl: true, sslInvalidHostNameAllowed: true, sslValidate: false,
sslPEMKeyPwd: config.db[name].sslCertPassword
}
});
conn[name].user = config.db[name].user;
conn[name].pass = config.db[name].pwd;
我遇到以下错误:
name: 'MongoError',
message: 'self signed certificate in certificate chain'
答案 0 :(得分:0)
使用以下命令通过ssl将猫鼬与远程数据库连接: sslValidate:true
用于自生成证书的情况。
使用猫鼬(使用ssl)进行连接的更简单方法:
// create mongo ssl config
const mongoSSL = {
sslKey: require('fs').readFileSync('../../key.pem'),
sslCert: require('fs').readFileSync('../../cert.pem'),
sslValidate: true, // in case of self-generated certificate
};
// connect with remote db with ssl
mongoose.connect(
mongodb:// + MONGODB_USERNAME + ':' + MONGODB_PASSWORD + @2.18.4.13:27017/,
{useUnifiedTopology: true, useNewUrlParser: true},
mongoSSL
);