【发布时间】:2022-02-24 09:06:35
【问题描述】:
我正在尝试将我的节点服务器与启用 ssl 选项的 mongodb 连接。
mongod.conf
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: XX
bindIp: 127.0.0.1,XXX.XX.XX.XXX
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/PEMKEYFILE.pem
PEMKeyPassword: "PASSWORDFORPEM"
CAFile: /etc/ssl/CAFILE.pem
security:
authorization: enabled
replication:
oplogSizeMB: 1024
replSetName: "REPLSET"
节点服务器配置文件
MONGO_URL: '<pathToMongoDb>/<db>',
MONGO_REPLICA_SET_READ_PREFERENCE: 'nearest',
MONGO_REPLICA_SET: {
ssl: true,
sslValidate: true,
sslKey: fs.readFileSync('/etc/ssl/mongodb.pem'),
sslCert: fs.readFileSync('/etc/ssl/mongodb.pem'),
sslCa: fs.readFileSync('/etc/ssl/CAFILE.pem'),
replicaSet: 'REPLSET',
auto_reconnect: false,
poolSize: 24,
socketOptions: {
keepAlive: 1000,
connectTimeoutMS: 30000
}
},
MONGO_SERVER: {
ssl: true,
sslValidate: false,
checkServerIdentity: false,
sslKey: fs.readFileSync('/etc/ssl/mongodb.pem'),
sslCert: fs.readFileSync('/etc/ssl/mongodb.pem'),
sslCA: fs.readFileSync('/etc/ssl/CAFILE.pem'),
poolSize: 24,
socketOptions: { keepAlive: 300000, connectTimeoutMS: 30000 },
reconnectTries: Number.MAX_VALUE,
reconnectInterval: 1000
},
MONGO_CHECK_SERVER_IDENTITY: false,
猫鼬文件
mongoose.connect(config.MONGO_URL,{
db: {
native_parser: true,
readPreference: config.MONGO_REPLICA_SET_READ_PREFERENCE
},
server: config.MONGO_SERVER,
replset: config.MONGO_REPLICA_SET,
user: config.MONGO_USER,
pass: config.MONGO_PASSWORD,
auth: {
authdb: config.MONGO_AUTHDB
}
})
我已经创建了 CA 证书和签名证书,但节点服务器返回错误:MongoError: failed to connect to server [XX.XXX.XXX.XX:port] on first connect MongoError: self signed certificate in certificate chain 我可以使用 shell 使用以下命令连接到 mongo
mongo XX.XX.XX.XXX:XX/<db> -u <user> -p <pass> --authenticationDatabase=admin --ssl --sslPEMKeyFile=/etc/ssl/PEMKEYFILE.pem --sslCAFile /etc/ssl/CAFILE.pem --sslAllowInvalidHostnames
请建议我哪里出错了。谢谢
【问题讨论】:
-
这与客户端无关。这是一个服务器配置问题,因此与 StackOverflow 无关。请改用dba.stackexchange.com 询问。
-
我无法通过节点应用程序连接并且能够通过shell连接,这意味着其中缺少一些东西。如果您有任何想法,请回答我最近两天想知道的问题。
-
这是服务器问题。请在正确的网站上发布服务器问题,有人会在那里为您提供帮助。
-
张贴在那里.. 感谢您的参考