MongoDB:获取 SSL 对等证书验证失败:自签名证书

MongoDB:获取 SSL 对等证书验证失败:自签名证书

我跟着教程创建根 CA 证书,然后使用它为 mongod 服务器签名密钥。我按照此配置运行 monogd文档

  net:
    ssl:
      mode: requireSSL
      PEMKeyFile: /home/user/device.pem
      CAFile: /home/user/rootCA.pem
      allowInvalidCertificates: true
      allowInvalidHostnames: true

由于连接失败,我添加了最后两个。

我正在使用这些线路来连接:

./mongo <host>:<port>/<db>  -u <user> -p <pwd> --ssl --sslAllowInvalidCertificates --sslCAFile ~/Downloads/rootCA.pem

./mongo <host>:<port>/<db>  -u <user> -p <pwd> --ssl --sslAllowInvalidCertificates

./mongo <host>:<port>/<db>  -u <user> -p <pwd> --ssl

但所有这些都会产生:

MongoDB shell version v3.4.2
connecting to: mongodb://<host>:<port>/<db>
2017-03-30T14:39:15.307+0300 E NETWORK  [thread1] SSL peer certificate validation failed: self signed certificate
2017-03-30T14:39:15.311+0300 E QUERY    [thread1] Error: socket exception [CONNECT_ERROR] for SSL peer certificate validation failed: self signed certificate :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed

知道我做错了什么吗?我知道这是一个自签名证书,非常感谢您的帮助

还尝试按照这里的答案操作:https://stackoverflow.com/questions/21297139/how-do-you-sign-certificate-signing-request-with-your-certification-authority/21340898#21340898

答案1

在你的蒙哥配置文件,您指定SSL 模式requireSSL。这意味着mongod服务器,仅有的使用并接受 TLS/SSL 加密连接。

您的客户端mongoshell 需要指定--sslPEM密钥文件传递客户端 PEM 文件。另请参阅mongo shell SSL 配置或者教程:为客户端配置 SSL

由于连接失败,我添加了最后两个。

在安全性方面,启用配置时要格外小心。请参阅两个参数的说明以了解它们的用途: --allowInvalidCertificates--allowInvalidHostnames

相关内容