当前位置: 首页>>技术教程>>正文


如何在Ubuntu上正确配置MongoDB以使用Letsencrypt SSL

, , , ,

问题描述

如何正确配置MongoDB在Ubuntu上使用Letsencrypt SSL?

我已经使用Letsencrypt创建了SSL证书,并通过以下方式将其组合:

cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/ssl/mongo.pem

并设置mongo config像:

net:
  port: 27017
  bindIp: 0.0.0.0
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongo.pem

但是尝试启动Mongo时出现此错误:

No SSL certificate validation can be performed since no CA file has been provided; please specify an sslCAFile parameter

如何正确设置CAFile? Ubuntu通常不是在自己的文件中使用”CA Path”和一堆不同的根证书吗?我尝试使用CURL CA捆绑包,但是那也不起作用。

我正在使用Mongo v3.0.12和Ubuntu 14.04

最佳思路

您组合了错误的pem文件。您需要将privkey.pemcert.pem结合使用。

cat /etc/letsencrypt/live/example.com/privkey.pem /etc/letsencrypt/live/example.com/cert.pem > /etc/ssl/mongo.pem

对于CAFile,您需要从https://www.identrust.com/certificates/trustid/root-download-x3.html下载IdenTrust DST根CA X3

sudo touch /etc/ssl/ca.crt
sudo chmod 777 /etc/ssl/ca.crt

添加网站证书,添加—– BEGIN CERTIFICATE —–和—– END CERTIFICATE —–行,并确保您以保存文件的新行结尾:

sudo vi /etc/ssl/ca.crt

然后使用以下命令将crt文件转换为pem:

sudo touch /etc/ssl/ca.pem
sudo chmod 777 /etc/ssl/ca.pem
sudo openssl x509 -in /etc/ssl/ca.crt -out /etc/ssl/ca.pem -outform PEM

并与“让我们加密”中的chain.pem组合为单个文件ca.pem

sudo cat /etc/letsencrypt/live/example.com/chain.pem >> /etc/ssl/ca.pem

要设置CAFile,请遵循以下mongo配置设置:

net:  
  port: 27017
  bindIp: 0.0.0.0
  ssl:  
    mode: requireSSL  
    PEMKeyFile: /etc/ssl/mongo.pem
    CAFile: /etc/ssl/ca.pem

重新启动MongoDB:

sudo systemctl restart mongod
sudo systemctl status mongod

续订Let’s Encrypt证书时不要忘记这一刻,您还需要续订mongo.pemca.pem

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9395.html,未经允许,请勿转载。