Выпускаем сертификат 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)