Допустим у нас есть подписанный SSL сертификат, либо мы его получим от Let’s Encrypt, как я описывал в этой статье:
Установка Certbot в Ubuntu
Чтобы установить SSL сертификат для iRedMail, нужно указать его в конфигурации Dovecot, Postfix и Apache2.
Прописываем сертификат в Dovecot, для этого откроем файл конфигурации в текстовом редакторе:
sudo nano /etc/dovecot/dovecot.conf
Найдем строки:
ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key
И изменим их на свой сертификат (допустим от Let’s Encrypt):
#ssl_ca = </etc/letsencrypt/live/ixnfo.com/chain.pem
ssl_cert = </etc/letsencrypt/live/ixnfo.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/ixnfo.com/privkey.pem
Строку, где ssl_dh оставим без изменений.
Теперь откроем конфигурацию Postfix:
sudo nano /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
И изменим их на свой сертификат (допустим от Let’s Encrypt):
smtpd_tls_key_file = /etc/letsencrypt/live/ixnfo.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/ixnfo.com/fullchain.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/ixnfo.com/chain.pem
smtpd_tls_CApath = /etc/letsencrypt/live/ixnfo.com
Ну и осталось открыть конфигурацию Apache2:
sudo nano /etc/apache2/sites-enabled/default-ssl.conf
Найти строки:
SSLCertificateFile /etc/ssl/certs/iRedMail.crt
SSLCertificateKeyFile /etc/ssl/private/iRedMail.key
И изменить их:
SSLCertificateFile /etc/letsencrypt/live/ixnfo.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ixnfo.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/ixnfo.com/chain.pem
Чтобы применить изменения, перезапустим Dovecot, Postfix, Apache2 и убедимся что они успешно запущены:
sudo service dovecot restart
sudo service postfix restart
sudo service apache2 restart
sudo service dovecot status
sudo service postfix status
sudo service apache2 status
На этом установка своего SSL сертификата для iRedMail завершена.
Так как после каждого обновления сертификата необходимо перезапускать postfix и dovecot, то укажем опцию —post-hook для команды certbot renew, например в /etc/crontab:
15 7 * * 1 root certbot renew --post-hook "service postfix restart; service dovecot restart" >> /var/log/certbot-renew.log
Смотрите также мои статьи:
Обновление сертификата iRedMail
Ошибка Google «Failed to establish SSL secure connection to host»
Добрый человек, спасибо тебе большое за прекрасную статью! Я ее применил для nginx. Целый день угрохал сегодня на эти долбанные сертификаты и вот наконец нашел в чем была ошибка! Спасибо!