Допустим, у меня есть выделенный сервер с некоторым IP (IP1). Я перенаправляю несколько доменов (скажем, example.com
, example.net
) на этот IP-адрес через DNS. У меня работает один сервер nginx, я правильно настроил SNI, и он работает для HTTPS.
Я также настроил MX для обоих доменов, чтобы они указывали на сервер. Я настроил SMTP-сервер, который прослушивает, и он правильно отвечает на порт 25, определяя разрешенный хост из адреса электронной почты и отклоняя электронные письма любого другого хоста.
Я настроил TLS для этого сервера, но он позволяет использовать только один сертификат SSL (либо для example.com
или для example.net
). Есть ли способ с помощью SMTP использовать SNI (или эквивалент?), Чтобы, в зависимости от того, в каком месте назначения он представлял правильный сертификат TLS?
Пока ничего для этого не нашел. Моя текущая стратегия состоит в том, чтобы либо использовать другой IP-адрес для другого домена (возможно, с IPv6, но не для IPv4 в моем случае), либо запустить два SMTP-сервера (по одному для каждого хоста) и правило брандмауэра для перенаправления на другой порт. на основе IP-адреса назначения. Это громоздко для двух доменов, но если у вас больше доменов, скажем, 10 доменов, это вообще не жизнеспособно.
Есть ли лучшая стратегия? Как крупные поставщики услуг работают с SMTP для множества хостов?
SNI здесь не нужен. Проверка имени хоста сертификата выполняется по имени хоста, возвращаемому записью MX, а не по имени домена в целевом адресе электронной почты. Итак, если вы убедились, что все записи MX для всех ваших доменов указывают на одно и то же имя хоста, вам понадобится только сертификат для этого имени хоста.
Другими словами, если у вас есть запись MX, в которой говорится, что все электронные письма в домен example.com
должен обрабатываться почтовым сервером mail.example.net
, то почтовый сервер должен иметь сертификат для имени хоста mail.example.net
только.