LetsEncrypt SSL证书验证因MongoDB而失败

时间:2018-06-12 17:10:30

标签: mongodb ssl ubuntu-16.04 lets-encrypt certbot

一点背景......我的证书是使用Certbot发布的LetsEncrypt.org SSL证书。我正在运行Nginx 1.12.2,并且我能够使用 https:// 正确访问我的网站,所以我相信该部分配置正确。我的Web服务器正在运行Ubuntu 16.04和MongoDB 3.6.3。

我尝试了很多配置,虽然我可以使用没有SSL选项的Compass(官方MongoDB GUI)连接到我的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];注意我在运行mongo.pem: OK命令时得到openssl verify -CAfile /etc/ca.pem /etc/mongo.pem,所以我认为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中间证书到否果。

任何帮助都非常赞赏。

0 个答案:

没有答案