23.11.2023
Будем считать, что сертификаты мы уже имеем, как получить сертификаты на примере Lets'encrypt мы рассматривали в
этой статье.
У нас система Debian, на Ubuntu всё тоже самое, на других системах Linux пути могут незначительно различаться, но суть та же.
Первым делом пропишем сертификаты в dovecot, для этого откроем конфиг:
vi /etc/dovecot/dovecot.conf
Я привык работать с vi, кому-то удобнее nano или другие редакторы, это на ваше усмотрение.
В этом файле нам необходимо найти строки примерно такого содержания:
ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key
В редакторе vi поиск делать очень просто, необходимо нажать клавишу "/" и ввести несколько букв поиска и нажать Enter.
Мы эти строки комментируем (ставим в начало строки значок "#", чтоб эти строки пропускались при чтении конфига) и добавляем новые строки уже с путём к нашим сертификатам:
ssl_cert = </etc/letsencrypt/live/mail.host.ru/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.host.ru/privkey.pem
Строку ssl_dh оставляем без изменения. Сохраняем файл.
Далее внесём корректировки для postfix, для этого откроем его конфиг:
vi /etc/postfix/main.cf
Здесь мы ищем строки примерно такого содержания:
smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CApath = /etc/ssl/certs
И заменяем их так:
smtpd_tls_key_file = /etc/letsencrypt/live/mail.host.ru/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.host.ru/fullchain.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.host.ru/chain.pem
smtpd_tls_CApath = /etc/letsencrypt/live/mail.host.ru
Ну и сохраняем файл. Отлично, осталось ещё немного - поправить конфиг nginx.
Но в nginx используется немало ссылок из одного конфига на другие конфиги, поэтому тут можно настроить ssl 2мя путями - прописав его в конфиге папки /etc/nginx/sites-enabled/00-default-ssl.conf либо в темплейте.
Я пропишу в темплейте, вы делайте, как считаете нужным.
Открываю файл темплейта:
vi /etc/nginx/templates/ssl.tmpl
И изменяю там последние строки с этого формата:
#ssl_certificate /etc/ssl/certs/iRedMail.crt;
#ssl_certificate_key /etc/ssl/private/iRedMail.key;
На этот:
ssl_certificate /etc/letsencrypt/live/mail.host.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.host.ru/privkey.pem;
Готово. Не забываем сохранять файл.
Теперь перезапускаем наши службы dovecot, postfix и nginx:
systemctl stop dovecot
systemctl start dovecot
systemctl stop postfix
systemctl start postfix
systemctl stop nginx
systemctl start nginx
Если всё корректно запустилось - супер.
Далее можем перейти в наш веб-сервер и порадоваться, что теперь наше соединение защищено и сертификат - верный:
Супер! Задача выполнена, можно попить чаёчку)
Всем удачи!