繁体   English   中英

Mongoose SSL,不接受连接

[英]Mongoose SSL, connection not accepted

所以我花了一点时间来设置一个带有 SSL 和授权的 repl 集。 但是,我最终设置并运行了它,并且可以通过提供适当参数的命令行进行连接。 我正在尝试用 mongoose 做同样的事情,但是我一直在 mongodb 日志中收到错误,如下所示: AssertionException handling request, closing client connection: 17189 The server is configured to only allow SSL connections即使我指定了所有ssl 选项。

我的代码如下:

var m = require('mongoose');

var key = fs.readFileSync('/home/node/mongodb/mongodb.pem');
var ca = [fs.readFileSync('/home/node/mongodb/ca.pem')];

var o = {
    server: {
        sslValidate:true,
        sslCA: ca,
        sslKey: key,
        sslCert:key
    },
    user: '****',
    pass: '****'
};

m.connect('mongodb://dbAddr/dbName', o)

我试过将 sslValidate 设置为false ,同样的问题。 我试过没有 CA、证书和/或密钥的多种组合。 当我通过命令行连接时,它需要我提供 CA 和密钥+证书 PEM 文件。 所以我认为猫鼬客户端也会需要这些。 我已经尝试了serverreplset键,结果完全相同。 我什至指定了 authSource(authDB),尽管看起来这不是问题的一部分,但这仍然会产生相同的结果。

我真的很困惑,尤其是因为我通过mongo命令做同样的事情没有问题。

我的 mongo shell 命令如下:

mongo --host db1 --ssl --sslPEMKeyFile /etc/mongodb/mongodb.pem  --sslCAFile /etc/mongodb/ca.pem -u *** -p *** --authenticationDatabase dbName

mongoDB 节点驱动程序文档中未描述,您还必须提供选项{server: {ssl: true}以便通过 SSL 连接。 如果不这样做,其他选项将被简单地忽略。

但是,如果您深入研究 github 上的 mongoose 问题跟踪器,您会发现this ,它完全推荐了这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM