Наконец-то я установил certbot-auto на экземпляр AWS EC2 Linux, который доставлял мне проблемы, и я пытаюсь получить сертификат с подстановочными знаками от Let's Encrypt.
Мне сказали разместить запись TXT под именем (изменено для защиты невиновных) _acme-challenge.foo.bar.net с заданным значением.
Итак, я перехожу на страницу консоли Route 53 и выбираю зону хостинга bar.net. Я добавляю запись _acme-challenge.foo.bar.net с указанным значением, нажимаю «Сохранить набор записей» и жду несколько минут. Затем я выбираю его и нажимаю «Test Record Set», и Route 53 считает, что он опубликован.
Но когда я приказываю certbot-auto продолжить, а Let's Encrypt ищет запись, ее там нет. И если я сделаю nslookup -q = txt _acme-challenge.foo.bar.net, я получу
сервер не может найти _acme-challenge.foo.bar.net
а для nslookup -q = txt foo.bar.net я получаю
сервер не может найти foo.bar.net
И все же, если я сделаю обычный nslookup на foo.bar.net, я его найду.
Что не так?
Я нашел источник проблемы.
При перекрестной проверке серверов, перечисленных в записи NS, я заметил, что имя в записи TXT не было (имена все еще изменены для защиты невиновных)
_acme-challenge.foo.bar.net
но
_acme-challenge.foo.bar.net.bar.net
Я не заметил, что редактор набора записей консоли Route 53 помещает доменное имя размещенной зоны справа от поля для ввода имени набора записей, а затем добавляет его к тому, что вы вводите. Итак, я ввел полное имя записи и, таким образом, получил ".bar.net" дважды, один раз явно и один раз неявно.
Чтобы придумать фразу, впервые произнесенную вымышленным инженером по имени Монтгомери Скотт,
Чем больше вы обдумываете сантехнику, тем легче перекрыть сток.