Однажды была поставлена задача: между почтовым серверами группы компаний настроить пересылку сообщений с использованием tls, то есть шифрованными. Один из этих серверов - exim, создан давно по конфигам, представленным в статьях на этом сайте(почти все одинаковые)).
На двух серверах установлен Exchange с купленными и подписанными сертификатами, на exime сертификат, сгенерированный локально - самоподписной.
В общем-то типовой конфиг exima для работы с TLS были включены следующие строки:
Код: Выделить всё
tls_advertise_hosts = *
tls_certificate = /etc/ssl/certs/exim.crt
tls_privatekey = /etc/ssl/certs/exim.pem
tls_on_connect_ports = 465
Код: Выделить всё
remote_smtp:
driver = smtp
tls_certificate = /etc/ssl/certs/exim.crt
tls_privatekey = /etc/ssl/certs/exim.pem
hosts_require_tls = 10.x.x.x:10.y.y.y
Сертификат сервера exim был добавлен в доверенные на этих exchange-серверах. И в настоящий момент обмен сообщениями между этим серверами уже идет с использованием TLS.
Но возникает проблема следующего характера: если пользователь с первого exchange-сервера посылает письмо на почтовый ящик сервера c eximом, на котором настроена переадресация на почтовый ящик второго сервера Exchange, то при пересылке этого сообщения c exim на второй Exchange, последний отвечает:
Код: Выделить всё
454 4.7.5 Certificate validation failure
Переадресация происходит либо через алиасы, созданные на этом сервере и указывающие на реальные почтовые ящики других серверов, либо с существующих почтовых ящиков exim на почтовые ящики других серверов. Алиасы и переадресация настраиваются через postfixadmin с добавлением в поле goto таблицы alias соответствующих адресов. В конфиге eximа с этой таблице работает только один роутер:
Код: Выделить всё
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT goto FROM alias WHERE address='${quote_mysql:$local_part@$domain}' OR address='${quote_mysql:@$domain}'}}
з.ы. Exchange в глаза не видел - настраивают другие люди :-)