Итак, моя проблема проста. Мне просто нужен твердый ответ, чтобы не нарушить работу службы электронной почты.
У меня есть два сервера: один для почты, а другой - для почтовой службы. веб-сервис. Веб-сервер отвечает за обновление сертификатов 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% уверенным в том, что происходит и почему, чтобы предотвратить любые проблемы в будущее.
Вы создали циклический перебор DNS .
Не создавайте несколько записей A с одним и тем же именем, если вы не хотите, чтобы они указывали на одну и ту же службу. Есть и другие способы решить то, что вы пытаетесь сделать; например, установив минимальную веб-службу на почтовом сервере с явной задачей обновления сертификатов или установив балансировщик нагрузки / обратный прокси-сервер перед обоими серверами. Последнее делает управление сертификатами более утомительным.
Это неправильный подход для получения сертификатов 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 для обновления шифрования .
Микаэль прав насчет циклического перебора DNS. Другой вариант - проверить домен через DNS, а не через HTTP-запрос. Посмотрите эту ссылку из Certify The Web, где объясняется, как использовать их программное обеспечение для проверки DNS. Затем вы можете полностью удалить веб-сервер, если все, что вам нужно, это проверка домена.