NodeJS Mongoose抛出一个错误。"证书链中的自签名证书"
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJS Mongoose抛出一个错误。"证书链中的自签名证书"相关的知识,希望对你有一定的参考价值。
我使用mongoose连接到mongodb,并启用了ssl选项。
我写了以下代码。
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'
答案
使用ssl连接mongoose和远程数据库。sslValidate: true
这是在自生成证书的情况下使用的。
使用mongoose(带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
);
以上是关于NodeJS Mongoose抛出一个错误。"证书链中的自签名证书"的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Express 和 NodeJS 中针对 Mongoose 错误进行错误处理。
Mongoose GeoJSON 在使用中间件时抛出“MongoError:无法提取地理键”
错误:.find(...) 不是函数 nodejs mongoose