Como configurar corretamente o MongoDB para usar o Letsencrypt SSL no Ubuntu

5

Como configuro corretamente o MongoDB para usar o Letsencrypt SSL no Ubuntu?

Eu criei um certificado SSL usando o Letsencrypt e o combinei por meio de:

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

E configure o mongo como:

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

Mas eu recebo esse erro ao tentar iniciar o Mongo:

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

Como faço para definir corretamente o CAFile? O Ubuntu normalmente não usa um "CA Path" com um grupo de diferentes certificados de raiz em seus próprios arquivos? Eu tentei usar o pacote CURL CA, mas também não funcionou.

Estou usando o Mongo v3.0.12 e o Ubuntu 14.04

    
por Petah 28.09.2016 / 23:54

2 respostas

6

Você combina os arquivos pem errados. Você precisa combinar privkey.pem com cert.pem .

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

Para o CAFile, você precisa fazer o download do CA X3 da raiz de IdenTrust DST pelo link

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

Adicione o certificado do site, adicione as linhas ----- BEGIN CERTIFICATE ----- e ----- END CERTIFICATE ----- e certifique-se de terminar com uma nova linha salvando o arquivo:

sudo vi /etc/ssl/ca.crt

Em seguida, converta o arquivo crt em um pem usando:

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

E combine com chain.pem de Let's Encrypt em um único arquivo ca.pem

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

Para definir o CAFile, siga esta configuração de configuração do mongo:

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

Reinicie o MongoDB:

sudo systemctl restart mongod
sudo systemctl status mongod

Não se esqueça do momento em que você renova os certificados "Let's Encrypt", mas também precisa renovar mongo.pem e ca.pem .

    
por 14.10.2017 / 15:31
2

O arquivo CA que você precisa pode ser obtido no Letsencrypt, procure um dos certificados intermediários aqui:

link

Em seguida, especifique o caminho para esse certificado com o SSL CAFile opção.

    
por 11.10.2016 / 19:01