Безопасный сервер iRedMail с SSL-сертификатом Let’s Encrypt
В нашем предыдущем руководстве мы видели, как можно установить и настроить iRedMail Server на Rocky Linux 8 . При установке iRedMail по умолчанию создается и устанавливается самозаверяющий сертификат SSL для почтовых служб — POP3 / IMAP / SMTP через TLS и для доступа HTTPS к службам веб-почты.
При использовании самозаверяющего сертификата вы часто будете получать предупреждающие сообщения о том, что используемый сертификат не является доверенным. Чтобы избежать появления этих надоедливых сообщений, рекомендуется купить сертификат SSL у поставщика сертификатов SSL или получить бесплатный сертификат Let’s Encrypt.
В этом руководстве мы будем использовать бесплатный SSL-сертификат Let’s Encrypt для защиты наших служб iRedMail. Чтобы получить сертификат Let’s Encrypt SSL, ваш сервер должен иметь общедоступный IP-адрес и запись DNS, указывающую на этот IP-адрес.
Шаг 1. Получите сертификат Let’s Encrypt
Установите инструмент certbot, который будет использоваться для получения SSL-сертификата Let’s Encrypt.
# Install certbot on Ubuntu /Debian
sudo apt update
sudo apt install certbot
# Install certbot on CentOS / Rocky
sudo yum -y install epel-release
sudo yum -y install certbot
После установки инструмента certbot-auto сохраните адрес электронной почты и домен для сервера iRedMail.
DOMAIN="mail.infoit.com.ua"
EMAIL="webmaster@infoit.com.ua"
Остановите службу Nginx.
sudo systemctl stop nginx
Получите бесплатный сертификат Let’s Encrypt для почтового сервера iRedMail.
sudo certbot certonly --standalone -d $DOMAIN --preferred-challenges http --agree-tos -n -m $EMAIL --keep-until-expiring
Стандартное сообщение об успешном завершении Let’s Encrypt выводит путь к вашим сертификатам.
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mail.infoit.com.ua/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mail.infoit.com.ua/privkey.pem
Your cert will expire on 2020-01-23. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Шаг 2. Замените самозаверяющие сертификаты iRedMail
Переименуйте самозаверяющий сертификат iRedMail.crt и закрытый ключ.
sudo mv /etc/pki/tls/certs/iRedMail.crt{,.bak}
sudo mv /etc/pki/tls/private/iRedMail.key{,.bak}
Создайте символическую ссылку для сертификата Let’s Encrypt и закрытого ключа.
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/pki/tls/certs/iRedMail.crt
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/privkey.pem /etc/pki/tls/private/iRedMail.key
Перезагрузите сервер iRedMail, чтобы службы могли использовать новый сертификат.
sudo reboot
Шаг 3. Установите автоматическое продление сертификата
Создайте задание cron для автоматического обновления сертификатов Let’s Encrypt:
$ sudo crontab -e
# Renew Let's Encrypt certs
15 3 * * * /usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
После добавления SSL-сертификата Let’s Encrypt приложение почтового клиента (MUA, например Outlook, Thunderbird) не должно предупреждать вас о недействительном сертификате. То же, что и доступ к клиентам веб-почты в браузере.