sag*_*oto 5 ssl openssl ssl-certificate mongodb
我按照本教程创建了一个根 CA 证书,然后使用它为 mongod 服务器签名。我使用此配置运行monogd,遵循此文档:
net:
ssl:
mode: requireSSL
PEMKeyFile: /home/user/device.pem
CAFile: /home/user/rootCA.pem
allowInvalidCertificates: true
allowInvalidHostnames: true
Run Code Online (Sandbox Code Playgroud)
由于连接失败,我添加的最后 2 个。
我正在使用这些线路连接:
./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
Run Code Online (Sandbox Code Playgroud)
但所有这些都会产生:
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
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?我知道这是一个自签名证书将感谢您的帮助
还尝试按照此处的答案进行操作:https : //stackoverflow.com/questions/21297139/how-do-you-sign-certificate-signing-request-with-your-certification-authority/21340898#21340898
小智 3
在mongod配置文件中,将SSL 模式指定为requireSSL. 这意味着mongod服务器仅使用和接受 TLS/SSL 加密连接。
在您的情况下,客户端mongoshell 需要指定--sslPEMKeyFile来传递客户端 PEM 文件。另请参阅mongo shell SSL 配置或教程:为客户端配置 SSL。
由于连接失败,我添加了最后两个。
关于安全性,启用配置时要格外小心。请参阅两个参数的说明以了解它们的用途: --allowInvalidCertificates和 --allowInvalidHostnames