hapi-mongodb中的SSL CA证书详细信息

时间:2018-09-25 14:22:48

标签: node.js mongodb ssl-certificate hapijs

我们不能在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证书详细信息吗?任何帮助将不胜感激。

1 个答案:

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