我们不能在MONGO URI中指定ssl证书,密钥文件和密码详细信息吗?
示例:
mongodb://[username:password@]host1[:port1]][/[database][?cafile][&keyfile][&passphrase]]
为什么我问这个问题是因为我正在使用hapi-mongodb
const Hapi = require('hapi');
const Boom = require('boom');
const launchServer = async function() {
const dbOpts = {
url: 'mongodb://localhost:27017/test',
settings: {
poolSize: 10
},
decorate: true
};
const server = Hapi.Server();
await server.register({
plugin: require('hapi-mongodb'),
options: dbOpts
});
await server.start();
console.log(`Server started at ${server.info.uri}`);
};
launchServer().catch((err) => {
console.error(err);
process.exit(1);
});
我找不到如何像dbOpts
一样在sslCA, sslKey, sslCert
中添加SSL证书详细信息吗?任何帮助将不胜感激。
答案 0 :(得分:1)
https://github.com/Marsup/hapi-mongodb/blob/7e9cd65/lib/index.js#L38读为:
const db = await MongoClient.connect(connectionOptions.url, connectionOptions.settings);
MongoClient.connect
的第二个参数记录在http://mongodb.github.io/node-mongodb-native/2.2/reference/connecting/legacy-connection-settings/#individual-server-level-options
因此您的dbOpts必须类似于
const dbOpts = {
url: 'mongodb://localhost:27017/test',
settings: {
server: {
poolSize: 10,
sslKey:key,
sslCert:cert
}
},
decorate: true
};