Запись MX, указывающая на запись A с двумя разными IP-адресами

Итак, моя проблема проста. Мне просто нужен твердый ответ, чтобы не нарушить работу службы электронной почты.

У меня есть два сервера: один для почты, а другой - для почтовой службы. веб-сервис. Веб-сервер отвечает за обновление сертификатов SSL (я использую центр сертификации Let's Encrypt).

Моя запись DNS A - это mail.example.com и указывает на IP-адрес почтового сервера. Запись MX указывает на эту запись A.

Проверка сертификатов SSL производится через DNS, поэтому я добавил еще одну запись A с тем же именем хоста (mail.example.com), но указывающую на IP-адрес веб-сервера.

Я пробовал это на некоторое время, и это сработало (проверка прошла успешно, и почтовая служба работала нормально), но я не уверен в этом на 100% и навел меня на две следующие мысли:

1 - Запись A для веб-сервера была добавлена ​​после, поэтому в запросе DNS почтовый сервер IP идет первым, и поэтому все работает нормально.

2 - Я где-то читал, что в браузере результаты DNS-запросов используются в случайном порядке. Если первый IP-адрес не может обслуживать HTTP-запросы, будет использоваться второй. Я не уверен насчет этого, но может ли случиться так, что с почтовой службой происходит то же самое? Если первый разрешенный IP-адрес не принимает почту, он попробует второй?

Я хотел бы получить разъяснения по этому поводу, потому что я не хочу быть на 100% уверенным в том, что происходит и почему, чтобы предотвратить любые проблемы в будущее.

0
задан 12 February 2019 в 00:45
3 ответа

Вы создали циклический перебор DNS .

Не создавайте несколько записей A с одним и тем же именем, если вы не хотите, чтобы они указывали на одну и ту же службу. Есть и другие способы решить то, что вы пытаетесь сделать; например, установив минимальную веб-службу на почтовом сервере с явной задачей обновления сертификатов или установив балансировщик нагрузки / обратный прокси-сервер перед обоими серверами. Последнее делает управление сертификатами более утомительным.

3
ответ дан 4 December 2019 в 11:15

Это неправильный подход для получения сертификатов Let's Encrypt для почтового сервера без установленного веб-сервера.

Вместо этого вам следует использовать автономный плагин certbot. Таким образом, certbot запускает собственный встроенный временный веб-сервер для выполнения проверки HTTP.

Вы запрашиваете сертификат для имени, соответствующего значению вашей записи MX. Например, если у вас есть домен example.com и ваша запись MX указывает на mail.example.com, вы запрашиваете сертификат для mail.example.com, IP-адрес которого должен указывать только на этот почтовый сервер.

Например:

certbot certonly --standalone -d mail.example.com

Затем вы можете добавить результирующие ссылки на сертификаты в / etc / letsencrypt / live в конфигурацию вашего почтового сервера.

Обратите внимание, что когда вы обновите сертификат , ваш почтовый сервер выиграет не перезапускается автоматически. Для этого вам нужно настроить - post-hook . Например:

certbot renew --post-hook "systemctl reload postfix dovecot"

Для получения дополнительной информации об автоматизации обновления сертификата см. Задание Cron для обновления шифрования .

2
ответ дан 4 December 2019 в 11:15

Микаэль прав насчет циклического перебора DNS. Другой вариант - проверить домен через DNS, а не через HTTP-запрос. Посмотрите эту ссылку из Certify The Web, где объясняется, как использовать их программное обеспечение для проверки DNS. Затем вы можете полностью удалить веб-сервер, если все, что вам нужно, это проверка домена.

1
ответ дан 4 December 2019 в 11:15

Теги

Похожие вопросы