gpt4 book ai didi

node.js - Mongoose SSL,连接未被接受

转载 作者:可可西里 更新时间:2023-11-01 10:27:10 24 4
gpt4 key购买 nike

所以我花了一些时间来设置一个带有 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、证书和/或 key 的情况下尝试过多种组合。当我通过命令行连接时,它要求我提供 CA 和 key +证书 PEM 文件。所以我认为 mongoose 客户端也需要这些。我已经尝试了 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 node driver documentation 中描述,您还必须提供选项 {server: {ssl: true} 才能通过 SSL 连接。如果不这样做,其他选项将被简单地忽略。

但是,如果您深入研究 github 上的 mongoose 问题跟踪器,您会发现 this ,这正是推荐的。

关于node.js - Mongoose SSL,连接未被接受,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32833298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com