如何正确configurationMongoDB在Ubuntu上使用Letsencrypt SSL

我如何正确地configurationMongoDB在Ubuntu上使用Letsencrypt SSL?

我已经使用Letsencrypt创build了一个SSL证书,并通过以下方式进行组合:

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

并设置如下mongoconfiguration:

 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通常在自己的文件中使用一系列不同的根证书的“CApath”? 我尝试使用CURL CA软件包,但也没有工作。

我使用Mongo v3.0.12和Ubuntu 14.04

您需要的CA文件可以从Letsencrypt获取,请在此处查找其中一个中间证书:

https://letsencrypt.org/certificates/

然后,使用SSL CAFile选项指定该证书的path。

你结合了错误的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 

并结合来自Let's Encrypt的ca.pem到单个文件ca.pem

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

要设置CAFile,请遵循以下mongoconfiguration设置:

 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