SSL对等证书验证失败:无法在MongoDB中获取本地颁发者证书

时间:2019-04-04 21:29:44

标签: mongodb

我正在尝试在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/

有人可以建议我实现这一目标吗?

0 个答案:

没有答案