Postfix. Несколько доменов, несколько сертификатов Let’sEncrypt.

Эта запись про одну из тех абсолютно тривиальных вещей, которые делаются элементарно, но редко. И вот из-за своей редкости — забываются некоторые нюансы.

Итак. Есть у вас почтовый сервер на Postfix, который обслуживает несколько почтовых доменов. Вы все делаете по уму, поэтому у вас есть SPF и вы решили настроить DKIM для подписи каждого письма сертификатом именно того домена с которого оно отправляется.У вас в системе уже стоит certbot и nginx и вы не заморачиваясь можете получать и обновлять сертификаты для каждого из www доменов. Осталось использовать эти сертификаты на наше благо.

В файл /etc/postfix/main.cf добавляем запись о сертификате нашего первичного домена и далее указываем откуда брать информацию о сертификатов для каждого из обслуживаемых доменов.

smtpd_tls_chain_files =
/etc/letsencrypt/live/mail.domain.ru/privkey.pem,
/etc/letsencrypt/live/mail.domain.ru/fullchain.pem
# provide the map to be used when SNI support is enabled
tls_server_sni_maps = hash:/etc/postfix/vmail_ssl.map

Далее создаем файл /etc/postfix/vmail_ssl.map и в него вносим данные о каждом нашем домене, в том числе и о первичном:

mail.domain.ru
/etc/letsencrypt/live/mail.domain.ru/privkey.pem
/etc/letsencrypt/live/mail.domain.ru/fullchain.pem
mail.domain1.ru
/etc/letsencrypt/live/mail.domain1.ru/privkey.pem
/etc/letsencrypt/live/mail.domain1.ru/fullchain.pem
mail.domain2.ru
/etc/letsencrypt/live/mail.domain2.ru/privkey.pem
/etc/letsencrypt/live/mail.domain2.ru/fullchain.pem

Перечитываем хещ для внесения его в БД постфикса и перезапускаем почтовик:
postmap -F hash:/etc/postfix/vmail_ssl.map
systemctl restart postfix

На этом собственно всё. Осталось доработать команду крон, чтобы она выглядела подобно такой:
30 1 * * 1 certbot renew && postmap -F hash:/etc/postfix/vmail_ssl.map && systemctl restart postfix
Поделиться ссылкой: