Как мне правильно настроить 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 вариант.