mongodb - SSL 对等证书验证失败:无法在 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 QUERY [js] 错误:无法连接到服务器 myapptest.tk:27017,连接尝试失败:SSLHandshakeFailed:SSL 对等证书验证失败:无法获取本地颁发者证书:
连接@src/mongo/shell/mongo.js:343:13
@(连接):2:6
异常:连接失败
如果我使用带有--sslAllowInvalidCertificates
类似选项的 mongo 命令
mongo --ssl --sslAllowInvalidCertificates
我可以连接到 mongodb 服务器,否则,我无法连接到服务器。
在 mongod.conf 文件中配置 SSL 证书有什么问题?
我想要的是,我们可以使用--sslCAFile 与 MongoDB 服务器连接吗?
如何在 mongodb 中生成 *.pem 格式的 --sslPEMKeyfile 和 --sslCAFile?
以下是我关注的链接:
https://docs.mongodb.com/manual/tutorial/configure-ssl/
有人可以建议我实现这一目标吗?
解决方案
推荐阅读
- github - 为什么我在推送我的第一个回购时遇到问题?
- pyspark - 将 pathlib.Path 与 spark.read.parquet 一起使用
- samsung-mobile - 三星没有坚持前台服务
- ios - 一种为 UILabel 实现类似 css 的自定义阴影的方法?
- powershell - Powershell命令Enable-ComputerRestore不接受变量
- python - aws cdk aws_iam.User with passwordResetRequired=True 如何初始化密码
- c# - RaycastHit 没有检测到任何东西
- python - AWS 上 TigerGraph 集群的 pyTigerGraph 连接器问题
- python - 对 Python Flask 应用程序的 PUT 请求中的 Json 无法解码
- webkit - 为什么我在使用 Weston/Wayland 时会出现“权限被拒绝”错误