Позднее Ctrl + ↑

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

Отключаем протокол pop3 iRedMail

Редактируем конфиг dovecot

sudo mcedit /etc/dovecot/dovecot.conf

меняем

# Enabled mail protocols.
protocols = pop3 imap sieve lmtp

на

# Enabled mail protocols.
protocols = imap sieve lmtp

перезапускаем dovecot

sudo service dovecot restart

Cистема индексации lucene для Dovecot (debian)

Крайне рекомендую установить систему индексации lucene, когда ваших писем перевалит за 10 тыс., вы вспомните меня добрым словом 😉

установим из репозиториев

sudo apt update
sudo apt install dovecot-lucene

теперь редактируем конфиг dovecot

sudo mcedit /etc/dovecot/dovecot.conf

ищем

mail_plugins = quota mailbox_alias acl mail_log notify

меняем на

mail_plugins = quota mailbox_alias acl mail_log notify fts fts_lucene

ищем

plugin {
    # Quota configuration.
    # Reference: http://wiki2.dovecot.org/Quota/Configuration
    quota = dict:user::proxy::quotadict

меняем на

plugin {
    fts = lucene
    fts_lucene = whitespace_chars=@. normalize default_language=russian
    fts_autoindex = yes

    # Quota configuration.
    # Reference: http://wiki2.dovecot.org/Quota/Configuration
    quota = dict:user::proxy::quotadict

осталось только перезапустить dovecot

sudo service dovecot restart
Ранее Ctrl + ↓