Выпускаем сертификат Let’s encrypt и настраиваем автоматический перевыпуск в iRedMail

устанавливаем certbot

sudo apt update
sudo apt install certbot

запрашиваем новый сертификат для домена mail.{domain}.ru

sudo certbot certonly --webroot --agree-tos --email postmaster@{domain}.ru -d mail.{domain}.ru -w /var/www/html/

открываем конфиги nginx и если нужно вносим изменения, сначала для http

sudo mcedit /etc/nginx/sites-enabled/00-default.conf

убедились, чтобы эти поля были раскомментированы

enable listen [::]:80;

затем для https

sudo mcedit /etc/nginx/sites-enabled/00-default-ssl.conf

убедились, чтобы эти поля были раскомментированы

add listen [::]:443 ssl http2;

проверяем правильность конфига

sudo nginx -t

перечитываем изменения службой nginx

sudo systemctl reload nginx

редактируем поти к сертификатам, самоподписанные меняем на let’s encrypt

sudo mcedit /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.{domain}.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.{domain}.ru/privkey.pem;

проверяем правильность конфига

sudo nginx -t

перечитываем изменения службой nginx

sudo systemctl reload nginx

правим кофиг postfix

sudo mcedit /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_key_file = /etc/letsencrypt/live/mail.{domain}.ru/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.{domain}.ru/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.{domain}.ru/chain.pem

перечитываем изменения службой postfix

sudo systemctl reload postfix

правим другой кофиг postfix, указываем на необходимость использования tls

sudo mcedit /etc/postfix/master.cf

добавляем

465     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o content_filter=smtp-amavis:[127.0.0.1]:10026

перечитываем изменения службой postfix

sudo systemctl reload postfix

правим конфиг dovecot

sudo mcedit /etc/dovecot/dovecot.conf

находим

ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key

заменяем

ssl_cert = </etc/letsencrypt/live/mail.{domain}.ru/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.{domain}.ru/privkey.pem

перечитываем изменения службой dovecot

sudo systemctl reload dovecot

осталось добавить в ротацию перевыпуск сертификата, для этого редактируем crontab

sudo crontab -e

add

# перевыпуск сертификатов Let's Encrypt
43 3 9 * * /usr/bin/certbot renew --post-hook "/usr/bin/systemctl reload nginx; /usr/bin/systemctl reload dovecot; /usr/bin/systemctl reload postfix"
45 3 9 * * /usr/sbin/service nginx reload
46 3 9 * * /usr/sbin/service postfix reload
47 3 9 * * /usr/sbin/service dovecot reload

не забудьте оставить пустую строку в конце (такие требования синтаксиса crontab)

Отправить
Поделиться