Вопрос или проблема
Я пытаюсь получить полные зеленые отметки на старом сервере iredmail checktls.com/TestReceiver.
У меня есть мультидоменный сертификат с этими доменами:
- mail.domain.tld
- mailgw.domain.tld
- mailgw2.domain.tld
Я получаю полные зеленые отметки на mail.domain.tld, но не на других. Я предполагаю, что это из-за того, что mail.domain.tld является именем сертификата (забыл, как это называется).
Предупреждение, которое я получаю на других доменах, следующее:
Имя хоста сертификата НЕ ПРОВЕРЕНО (mailgw.domain.tld != mail.domain.tld | DNS:mail.domain.tld)
Таким образом, электронная почта зашифрована, но хост не проверен
MX и A записи установлены для каждого домена. Они не делят один IP, а имеют свои собственные.
Что мне нужно изменить, чтобы решить эту проблему?
Мне нужно сделать отдельные сертификаты для каждого домена?
Информация о версии:
- Postfix 2.7.1
- Dovecot 1.2.15
- iRedMail 0.8.5
- Debian 6.0.10 (Squeeze)
Я знаю, что это старые версии и что следует обновиться (или скорее мигрировать), но в данный момент это невозможно для меня.
Я предоставлю любую необходимую информацию (если мой начальник не скажет не делать этого).
создайте и отредактируйте /etc/postfix/tls_sni
mail.domain.tld /path/to/mail.domain.tld/privkey.pem /path/to/mail.domain.tld/fullchain.pem
mailgw.domain.tld /path/to/mailgw.domain.tld/privkey.pem /path/to/mailgw.domain.tld/fullchain.pem
mailgw2.domain.tld /path/to/mailgw2.domain.tld/privkey.pem /path/to/mailgw2.domain.tld/fullchain.pem
затем отредактируйте ваш /etc/postfix/main.cf, добавьте эту строку
tls_server_sni_maps = hash:/etc/postfix/tls_sni
после этого перезапустите ваш postfix сервер, выполнив команду:
systemctl restart postfix
Ответ или решение
Общая задача постановки многодоменных сертификатов для сервера электронной почты, работающего на Postfix, в частности, на старой версии iRedMail, весьма актуальна для обеспечения безопасности и правильной идентификации сервера. В приведенной ситуации у вас есть многодоменные сертификаты, покрывающие несколько поддоменов, однако возникла проблема с проверкой хоста для некоторых из них. Это связано с тем, что имя сертификата (так называемое "Subject Common Name") не совпадает с именами доменов, пытающимися установить защищенное соединение.
Теория
Понимание SSL/TLS и сертификатов
SSL/TLS сертификаты используются для обеспечения шифрования данных, передаваемых между клиентом и сервером. Помимо этого, сертификаты также обеспечивают проверку подлинности сервера благодаря использованию субъектного имени (Subject) и альтернативных имен субъекта (Subject Alternative Names (SAN)), которые позволяют сертификату быть действительным для нескольких доменов и поддоменов.
Проблема
Сертификат, описанный вами, успешно проходит валидацию для mail.domain.tld
, но не для mailgw.domain.tld
и mailgw2.domain.tld
. Это обычно бывает из-за того, что в поле SAN вашего многодоменного сертификата отсутствуют записи для всех нужных доменов, кроме mail.domain.tld
.
Пример
Выявление проблемы
Ошибка, которую вы получаете, звучит примерно так:
Cert Hostname DOES NOT VERIFY (mailgw.domain.tld != mail.domain.tld | DNS:mail.domain.tld)
Это означает, что имя домена во время валидации не соответствует тому, что указано в сертификате. В данной ситуации mailgw.domain.tld
и mailgw2.domain.tld
очевидно не указаны в вашем сертификате как альтернативные имена в поле SAN.
Применение
Решение проблемы
Есть несколько подходов к решению этой проблемы:
-
Создание отдельного сертификата для каждого домена. Это наиболее простой и прямолинейный метод. Для каждого домена (
mailgw.domain.tld
,mailgw2.domain.tld
) необходимо создать свой SSL/TLS сертификат. -
Использование единого многодоменного сертификата. Обновите текущий сертификат, включив в него все необходимые поддомены в поле SAN, или запросите новый многодоменный сертификат с нужными именами субъектов.
-
Редактирование конфигурации Postfix для поддержки SNI (Server Name Indication). Это позволит вам использовать разные сертификаты на одном IP-адресе в зависимости от запрашиваемого имени сервера. Для этого:
-
Создайте или отредактируйте файл
/etc/postfix/tls_sni
, добавив в него записи для каждого поддомена с путями к соответствующим приватным ключам и полным цепочкам сертификатов:mail.domain.tld /path/to/mail.domain.tld/privkey.pem /path/to/mail.domain.tld/fullchain.pem mailgw.domain.tld /path/to/mailgw.domain.tld/privkey.pem /path/to/mailgw.domain.tld/fullchain.pem mailgw2.domain.tld /path/to/mailgw2.domain.tld/privkey.pem /path/to/mailgw2.domain.tld/fullchain.pem
-
Отредактируйте
/etc/postfix/main.cf
, добавив строку:tls_server_sni_maps = hash:/etc/postfix/tls_sni
-
Перезапустите сервер Postfix для применения изменений:
systemctl restart postfix
-
Вопросы совместимости и обновления
Отметим, что данное решение касается довольно старых версий ПО (Postfix 2.7.1, Dovecot 1.2.15 и Debian Squeeze), которые больше не поддерживаются. Это вносит свои ограничения, особенно в плане использования современных алгоритмов шифрования и безопасности. Поскольку обновление системы не является возможным вариантом в вашем случае, важно удостовериться, что конфигурация системы защищена максимально возможным способом в рамках её возможностей.
Итог
Решение проблемы требует внимательного подхода к сертификатам и их конфигурации для вашего сервера. Вышеописанные варианты предоставляют выбор между простыми и сложными методами внедрения многодоменных сертификатов. Независимо от выбранного метода, необходимо проводить регулярные проверки безопасности, особенно учитывая устаревшие версии ПО, для поддержания надежности и защищенности вашего почтового сервера.