【发布时间】:2018-06-12 17:10:30
【问题描述】:
一点背景...我的证书是由 Certbot 颁发的 LetsEncrypt.org SSL 证书。我正在运行 Nginx 1.12.2,并且我能够使用 https:// 正确访问我的网站,因此我相信该部分配置正确。我的网络服务器运行的是 Ubuntu 16.04 和 MongoDB 3.6.3。
我已经尝试了许多配置,虽然我可以使用 Compass(官方 MongoDB GUI)在没有 SSL 选项的情况下很好地连接到我的 MongoDB,但尝试使用 SSL 连接会导致 无法连接到提供的 MongoDB主机和端口错误消息。在我的服务器上运行mongo -ssl --sslPEMKeyFile /etc/ssl/mongo.pem 会导致以下错误:
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
2018-06-12T16:51:10.756+0000 E NETWORK [thread1] SSL peer certificate validation failed: unable to get local issuer certificate
2018-06-12T16:51:10.757+0000 E QUERY [thread1] Error: socket exception [CONNECT_ERROR] for SSL peer certificate validation failed: unable to get local issuer certificate :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed
我的 /var/log/mongodb/mongod.log 显示与上述错误相对应的以下内容:
2018-06-12T16:51:10.755+0000 I NETWORK [listener] connection accepted from 127.0.0.1:47792 #8 (2 connections now open)
2018-06-12T16:51:10.757+0000 I NETWORK [conn8] end connection 127.0.0.1:47792 (1 connection now open)
我的 /etc/mongod.conf 包含以下内容(我已经注释掉了 CAFile 参数,因为我已经读过这是可选的 [来源:https://stackoverflow.com/a/33926129/2969615];请注意,我运行openssl verify -CAfile /etc/ca.pem /etc/mongo.pem 命令时得到mongo.pem: OK,所以我相信mongo.pem 设置正确):
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
ssl:
mode: allowSSL
PEMKeyFile: /etc/ssl/mongo.pem
# CAFile: /etc/ssl/ca.pem
我通过参考以下内容创建了我的 mongo.pem 文件:https://serverfault.com/a/878457 ...我已经尝试了说明中的证书以及 https://letsencrypt.org/certificates/ 提供的两个 X3 中间证书,但无济于事。
任何帮助都会非常感谢。
【问题讨论】:
-
你能解决这个问题吗?
-
很遗憾,没有。
标签: mongodb ssl ubuntu-16.04 lets-encrypt certbot