我正在尝试在MongoDB中配置SSL证书。为此,我使用freenom(online)获取了示例域名,例如myapptest.tk,并使用sslforfree(online)为该域名生成了证书。在/ etc / hosts文件中将该域名分配给我的MongoDB服务器IP。之后,下载这些证书并在/etc/mongod.conf文件中对其进行配置。
这是我在mongod.conf中使用的SSL配置
net:
port: 27017
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6
addresses or, alternatively, use the net.bindIpAll setting.
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/ca_bundle.crt
allowConnectionsWithoutCertificates: false
allowInvalidHostnames: false
disabledProtocols: TLS1_0,TLS1_1
在这里,我将把certificate.crt和private.key转换为mongodb.pem并作为PEMKeyFile的值传递,并将ca_bundle.crt作为CAFile的值传递。最终使用命令重新启动mongod服务
sudo service mongod restart
mongodb服务器成功运行。现在,我正在尝试通过命令连接mongodb服务器
mongo --ssl --sslPEMKeyFile /etc/ssl/mongodb.pem --sslCAFile /etc/ssl/ca_bundle.crt --host myapptest.tk
我无法连接到服务器。得到类似
的错误MongoDB Shell版本v4.0.8
连接到:mongodb://myapptest.tk:27017 /?gssapiServiceName = mongodb
2019-04-04T19:57:40.401 + 0000 E NETWORK [js] SSL对等证书验证失败:无法获取本地颁发者证书
2019-04-04T19:57:40.402 + 0000 E查询[js]错误:无法连接到服务器myapptest.tk:27017,连接尝试失败:SSLHandshakeFailed:SSL对等证书验证失败:无法获取本地发行者证书:
connect@src/mongo/shell/mongo.js:343:13
@(connect):2:6
例外:连接失败
如果我将mongo命令与选项--sslAllowInvalidCertificates
一起使用
mongo --ssl --sslAllowInvalidCertificates
我可以与mongodb服务器连接,否则,我无法与服务器连接。
在mongod.conf文件中配置SSL证书有什么问题?
我想要的是,我们可以使用--sslCAFile连接到MongoDB服务器吗?
如何在mongodb中以* .pem格式生成--sslPEMKeyfile和--sslCAFile?
下面是我关注的链接:
https://docs.mongodb.com/manual/tutorial/configure-ssl/
有人可以建议我实现这一目标吗?