Postfix, несколько доменов и несколько сертификатов на одном IP

Postfix, несколько доменов и несколько сертификатов на одном IP

У меня есть сервер postfix, который имеет несколько доменов, и я хочу иметь определенный сертификат для каждого. У моего сервера только один IP.

Я нашел решение с несколькими IP, но без этого я не знаю, как это сделать.

  • Сервер: Debian 9
  • Постфикс: 3.1.8

решение1

Насколько мне известно, в postfix нет работающего SNI. Пока. Документация (http://www.postfix.org/TLS_README.html) говорят, что "Нет планов по внедрению SNI в SMTP-сервер Postfix", хотя Виктор упоминал в январе, что он хочет добавить поддержку SNI в postfix 3.4. Альтернативы:

  • несколько ip
  • сертификат, содержащий все доменные имена.

Также нет ничего плохого в том, чтобы иметь один и тот же MX для всех доменов. Имя хоста MX — это ваш домен обслуживания или что-то в этом роде. Также имя helo/ehlo настроено на то же/похожее имя хоста. Если это хорошо для GoogleApps и других крупных поставщиков электронной почты, то это хорошо и для нас.

решение2

Если вы используете Postfix >=3.4, рассмотрите следующие шаги как адаптированныепо этой ссылке:

Шаг 1: Закомментируйте две верхние строки и добавьте следующие строки в /etc/postfix/main.cf:

    # smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
    # smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
    
    # provide the primary certificate for the server, to be used for outgoing connections (note the indentation)
    smtpd_tls_chain_files =
        /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem,
        /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
    
    # provide the map to be used when SNI support is enabled
    tls_server_sni_maps = hash:/etc/postfix/vmail_ssl.map

Шаг 2: Создайте файл /etc/postfix/vmail_ssl.map со следующим содержимым:

    # Compile with postmap -F hash:/etc/postfix/vmail_ssl.map when updating
    # One host per line
    mail.yourprimarymailserverdomain.com /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
    mail.yoursecondarymailserverdomain.com /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/fullchain.pem
    # add more domains with keys and certs as needed

Шаг 3: Бегать postmap -F hash:/etc/postfix/vmail_ssl.map.

Шаг 4: Бегать systemctl restart postfix.

Шаг 5: Теперь протестируйте SSL ваших доменов! Для каждого из ваших доменов выполните следующую команду:openssl s_client -connect localhost:25 -servername mail.mydomainname.com -starttls smtp

решение3

Для тех, кто не знает, таблицу SNI необходимо перестраивать каждый раз при изменении сертификата, поскольку генерируется базовая таблица, с помощью postmap -Fкоторой импортируется файл.содержание(он не просто хранит ссылки на имена файлов).

postmap -F hash:/etc/postfix/tls_server_sni_maps.map

решение4

Например, Postfix версии 3.4 теперь поддерживает SNI и поэтому доступен в Ubuntu 19.10.

Кроме того, ЕСТЬ веская причина хотеть этого - такие клиенты, как Outlook, пытаются выполнить автоконфигурацию, используя имя сервера, которое совпадает с именем домена электронной почты. Если ваш почтовый аккаунт находится на Gmail или другом общем домене, это не проблема, но личный домен, размещенный на сервере (даже VPS) с несколькими доменами, нуждается в решении, подобном этому

Связанный контент