Почтовый сервер · 1 min read · Oct 06, 2025

Полное решение почтового сервера с виртуальными доменами и пользователями (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Страница 13

C. Подписанные CA клиентские и серверные сертификаты

Если вы хотите использовать клиентские сертификаты, подписанные CA, вам нужно будет предпринять дополнительные шаги как в Postfix, так и в Dovecot, чтобы это работало. Если вы хотите, чтобы имена пользователей брались из самого сертификата, в настоящее время вы должны установить общее имя на имя пользователя, например [email protected], которое использовалось в этом документе.

1. Уведомление Postfix о сертификатах

В Postfix вы можете использовать либо каталог сертификатов CA, либо составной файл со всеми сертификатами, объединенными вместе. Мы будем использовать объединенную форму, так как именно этого ожидает Dovecot.

# postconf -e 'smtpd_tls_CAfile = /etc/ssl/example.com/ca/all.pem'

2. Уведомление Dovecot о сертификатах

В Dovecot у вас должен быть CRL вместе с сертификатом, чтобы аутентификация работала. Самих директивы следующие.

/etc/dovecot/dovecot.conf
[...]  
ssl_ca_file = /etc/ssl/example.com/ca/all.pem  
ssl_verify_client_cert = yes  
ssl_require_client_cert = yes  
ssl_username_from_cert = yes  
[...]  

ПРИМЕЧАНИЕ: Вам также нужно будет изменить password_query на закомментированный в /etc/dovecot/dovecot-sql.conf

Предупреждение: Если вы используете кандидат на выпуск Dovecot 28 или старше, сервер не будет отправлять список принятых имен CA, что может сделать невозможным подключение клиентов с несколькими клиентскими сертификатами. Пожалуйста, обновите или установите этот патч.

3. Объединение файлов

Если у вас есть несколько CA и CRL, может быть сложно объединять их каждый раз, поэтому был создан небольшой скрипт, который сделает это за вас. Просто поместите его в ваш каталог /etc/ssl/example.com/ca/ и запустите. Он создаст all.pem со всеми сертификатами и всеми CRL.

make.sh:
#!/bin/bash  
rm all.pem 2> /dev/null  
cat *.pem *.crl > all.pem

4. Настройки TLS Postfix

Как я уже говорил ранее, есть некоторые настройки в Postfix, которые также нужно изменить, поэтому давайте изменим main.cf:

# postconf -e 'smtpd_tls_ask_ccert = yes'  
# postconf -e 'smtpd_tls_req_ccert = no'  
# postconf -e 'smtpd_recipient_restrictions = permit_tls_all_clientcerts, reject'

Теперь у вас должен быть готовый к работе корпоративный почтовый сервер с клиентскими сертификатами.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.