configurationmongoose使用x509客户端证书连接到mongodb
我想configurationmongoose连接到我的MongoDB 3.0服务器,都在本地主机上。
我的服务器conf文件如下:
systemLog: destination: file path: "/var/log/mongodb/mongodb.log" logAppend: true storage: journal: enabled: true processManagement: fork: true net: port: 27017 ssl: mode: requireSSL #These are generated using my own local CA PEMKeyFile: "/etc/ssl/mongoServer.pem" CAFile: "/etc/ssl/rootCA.pem" setParameter: enableLocalhostAuthBypass: false authenticationMechanisms: MONGODB-X509
服务器运行,我可以连接到使用mongo shell,使用以下命令:
mongo -ssl --sslCAFile /etc/ssl/mongoServer.pem --sslPEMKeyFile /etc/ssl/mongoClient.pem
(奇怪的是,如果我使用rootCA.pem作为–sslCAFile,而不是mongoServer.pem,它不会连接,但这是另一个问题…)
大!
现在,我试图build立一个mongoose客户端连接到同一台服务器。 这里是我正在使用的configuration选项。
var dbConnectString = "mongodb://127.0.0.1:27017/testDb"; var options = { server: { socketOptions: { keepAlive: 1 } } }; options.server.ssl = true; options.server.sslCert = fs.readFileSync("/etc/ssl/mongoClient.pem"); options.server.sslKey = fs.readFileSync("/etc/ssl/mongoClient.pem"); options.server.sslCA = fs.readFileSync("/etc/ssl/mongoServer.pem"); options.server.sslValidate = false; mongoose.connect(dbConnectString, options);
这不起作用。 当我testing它,我得到“错误:连接closures”。
我也尝试过使用单独的密钥和crt文件(连接在一起来创buildpem文件),而且它们也不会连接。
我已阅读所有这些地方的文档: http : //mongoosejs.com/docs/connections.html
http://docs.mongodb.org/manual/reference/connection-string/
http://mongodb.github.io/node-mongodb-native/2.0/tutorials/connecting/
http://docs.mongodb.org/manual/core/authentication/
http://docs.mongodb.org/manual/tutorial/configure-ssl/
http://docs.mongodb.org/manual/reference/configuration-options/
我相信我正确地做到了这一点。 但是,我可能不是,因为它不工作。 更正,build议或解决scheme是欣赏。 谢谢!