NodeJS猫鼬抛出错误:“证书链中的自签名证书”

时间:2020-05-20 05:09:40

标签: node.js mongodb ssl mongoose mongoose-schema

我正在使用猫鼬在启用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'

1 个答案:

答案 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
);