Назад | Перейти на главную страницу

Как правильно настроить MongoDB для использования Letsencrypt SSL в Ubuntu

Как мне правильно настроить MongoDB для использования Letsencrypt SSL в Ubuntu?

Я создал сертификат SSL с помощью Letsencrypt и объединил его с помощью:

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

И настройте конфигурацию mongo, например:

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.pem с участием cert.pem.

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

Для CAFile вам необходимо загрузить IdenTrust DST Root CA X3 из https://www.identrust.com/certificates/trustid/root-download-x3.html

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 из Let's Encrypt в один файл 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.pem и ca.pem.

Нужный вам CA-файл можно получить в Letsencrypt, поищите здесь один из промежуточных сертификатов:

https://letsencrypt.org/certificates/

Затем укажите путь к этому сертификату с помощью SSL CAFile вариант.