Многодоменный сертификат для postfix

Вопрос или проблема

Я пытаюсь получить полные зеленые отметки на старом сервере 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.

Применение

Решение проблемы

Есть несколько подходов к решению этой проблемы:

  1. Создание отдельного сертификата для каждого домена. Это наиболее простой и прямолинейный метод. Для каждого домена (mailgw.domain.tld, mailgw2.domain.tld) необходимо создать свой SSL/TLS сертификат.

  2. Использование единого многодоменного сертификата. Обновите текущий сертификат, включив в него все необходимые поддомены в поле SAN, или запросите новый многодоменный сертификат с нужными именами субъектов.

  3. Редактирование конфигурации 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), которые больше не поддерживаются. Это вносит свои ограничения, особенно в плане использования современных алгоритмов шифрования и безопасности. Поскольку обновление системы не является возможным вариантом в вашем случае, важно удостовериться, что конфигурация системы защищена максимально возможным способом в рамках её возможностей.

Итог

Решение проблемы требует внимательного подхода к сертификатам и их конфигурации для вашего сервера. Вышеописанные варианты предоставляют выбор между простыми и сложными методами внедрения многодоменных сертификатов. Независимо от выбранного метода, необходимо проводить регулярные проверки безопасности, особенно учитывая устаревшие версии ПО, для поддержания надежности и защищенности вашего почтового сервера.

Оцените материал
Добавить комментарий

Капча загружается...