Во второй версии dovecot’а есть возможность указывать разные сертификаты для разных доменов (IP адресов и протоколов).

Для этого создаем шаблон:

[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no

[ req_dn ]
# country (2 letter code)
#C=FI

# State or Province Name (full name)
#ST=

# Locality Name (eg. city)
#L=Helsinki

# Organization (eg. company)
#O=Dovecot

# Organizational Unit Name (eg. section)
OU=IMAP server

# Common Name (*.example.com is also possible)
CN=imap.example.com

# E-mail contact
emailAddress=postmaster@example.com

[ cert_type ]
nsCertType = server

и сертификат:

# openssl req -new -x509 -nodes -config cert.cnf -out dovecot-domain-crt.pem -keyout dovecot-domain-key.pem -days 365

перемещаем сертификат и ключ куда надо, задаем права на файлы и т.д.

#  mv dovecot-crt.pem /etc/pki/dovecot/cert/dovecot-domain-crt.pem

#  mv dovecot-key.pem /etc/pki/dovecot/private/dovecot-domain-key.pem

# chmod 0600 /etc/pki/dovecot/cert/dovecot-domain-crt.pem

# chmod 0600 /etc/pki/dovecot/private/dovecot-domain-key.pem

# openssl x509 -subject -fingerprint -noout -in /etc/pki/dovecot/certs/dovecot-domain-crt.pem

далее необходимо поправить конфигурацию ssl для dovecot /etc/dovecot/conf.d/10-ssl.conf находим

ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

и НИЖЕ ДОБАВЛЯЕМ

local xx.xx.xx.xx {
protocol pop3 {
ssl_cert = </etc/pki/dovecot/certs/dovecot-domain-crt.pem
ssl_key = </etc/pki/dovecot/private/dovecot-domain-key.pem
}
}

Стандартную секцию необходимо оставить, иначе вы будете получать ошибку doveconf: Error: ssl enabled, but ssl_cert not set

вместо local <ваш IP> можно использовать local_name domain.tld, в этом случае секция с protocol pop3 не нужна, но вам понадобится поддержка TLS SNI (Server Name Indication)!

Настраивая что-нибудь в центоси вы обязательно огребете проблем если у вас включен SELinux.

Таким замечательным примером может служить настройка Postfix с SASL аутентификацией в Dovecot. Вы спокойно сделали конфиги, всё проверили, рестартанули сервисы, а в результате нижуя не работает! WTF? Это няши, SELinux.

Идем в лог /var/log/maillog и любуемся такой вот ошибкой:

localhost postfix/smtpd: warning: SASL: Connect to private/auth failed: Permission denied

Благодарим это чудо за чудесную ночь секаса или же берем клаву и ставив на место это безобразие (:

grep smtpd_t /var/log/audit/audit.log | audit2allow -M postfixsasl

коротко о команде — найти smtpd_t в логе аудита и создать на основе этого правило для selinux

semodule -i posfixsasl.pp

добавляем правило в проклятый selinux, перезапускаем сервис(ы) и всё няшно. Эх, если бы я нашла эту фичку год назад…

 

Дополнительно:

Иногда может случиться так, что вы вроде бы всё добавили (например, модули для munin), а что-то всё ещё не работает из-за SELinux’a. Причиной этому может быть то, что события блокировки попадают под donotaudit события. В этом случае можно временно включить donotaudit события командой:

semodule -DB

и потом вернуть обратно

semodule -B

 

Так же, помимо описанного выше способа поиска для создания правил. Можно воспользоваться командой:

ausearch -m avc -ts today | audit2allow -M myfix

Которая автоматически поищет все события и создаст правила для их разрешения.

 

p.s.

Вот тут: гайд как это работает + ещё примеры для тех кто любит и пожестче.