NodeJS Mongoose抛出一个错误。"证书链中的自签名证书"

问题描述 投票:0回答:1

我使用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'
node.js mongodb ssl mongoose mongoose-schema
1个回答
0
投票

使用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
);
© www.soinside.com 2019 - 2024. All rights reserved.