Я пытаюсь разместить два отдельных домена на одном IP-адресе. Я хочу иметь возможность определить с помощью команды STARTTLS, какой сертификат запрашивается, и перенаправить на другой почтовый сервер в зависимости от домена.
Это не представляется возможным из RFC, но есть ли другой способ добиться чего-то подобного на одном IP-адресе?
Согласно документации, Postfix отправляет информацию SNI в подтверждении TLS после STARTTLS
команда, по крайней мере, в случае, если записи TLSA публикуются в DNS:
Когда для удаленного SMTP-сервера получены пригодные для использования записи TLSA, SMTP-клиент Postfix отправляет расширение SNI TLS в своем приветственном сообщении SSL-клиента. Это может помочь удаленному SMTP-серверу выполнить свое обещание предоставить сертификат, соответствующий его записям TLSA.
Я не уверен, что этого достаточно, но это говорит о том, что SNI можно и нужно использовать с STARTTLS
; если некоторые отправители этого не делают, я считаю их неисправными.
Дальше, этот проект IETF указывает, что должен использоваться SNI:
Клиент использует статус проверки DNSSEC запроса SRV при проверке идентичности сертификата сервера. (Статус проверки TLSA не влияет на проверки подлинности сертификата сервера.) Он ДОЛЖЕН использовать расширение индикации имени сервера (TLS SNI) или его функциональный эквивалент в соответствующем протоколе приложения ...
Нет, SMTP предназначен для отслеживания всего пути связи по электронной почте в электронном письме, и каждое соединение будет завершаться и ретранслировать электронную почту, вы должны использовать транспортные карты (для постфикса), чтобы управлять получателем по адресу электронной почты, а не по имени хоста MTA.
Если вы получаете электронную почту для обоих доменов локально, ваш почтовый сервер должен обрабатывать это, если этот единственный IP-адрес пересылает электронную почту на два других сервера внутри, тогда транспортные карты - это то, что вы ищете с точки зрения сервера postfix.
Если это серверный ретранслятор исходящей почты (SMTPS), вам нужно будет обработать аутентификацию для обоих доменов на этом сервере, поскольку вы не можете использовать «прокси», как вы это делаете с nginx / haproxy и SNI.
Для этого вам не нужен SNI. Большинство MTA поддерживают маршрутизацию на основе домена. Например postfix имеет транспортную карту. Вы бы составили карту примерно так:
foo.com smtp:[mail.foo.com]
bar.com smtp:[mail.bar.com]