我如何正确地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.pem与cert.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.pem和ca.pem 。