certbot - Как правильно дождаться обновления записи TXT?

Я хочу использовать certbot для создания сертификата с подстановочными знаками, а после запуска certbot ... он дает мне хэш, говорит мне подождать, пока я не внесу его в запись TXT моего домена.

Но у меня нет прямого доступа к службе DNS, которую я использую. У меня есть служебная процедура для обновления настроек DNS, это требует времени, поэтому я не могу держать окно SSH открытым здесь. Если я перезапущу certbot , хэш изменится и возникнет та же проблема.

Как правильно дождаться обновления DNS и оставить хеш неизменным? Спасибо!

0
задан 23 October 2019 в 02:28
4 ответа

Я нашел, что, если я Ctrl-C прежде, чем бросить вызов (например, нажимают Enter) хеш не изменится.

, Таким образом, я могу ожидать обновления DNS затем, повторно выполняется certbot, оно показывает тот же хеш, и теперь я могу сразу нажать Enter.

0
ответ дан 23 November 2019 в 04:07

Каждая запись DNS имеет значение TTL. Можно изменить его на что-либо. Можно установить его на 60 секунд или обычно сохранять в более высоком значении и предшествующий массив изменений он к нижнему значению. Тем путем изменения распространят почти сразу.

кроме того, certbot просит, чтобы Вы создали новую запись. Новые записи также распространены очень быстро (в течение минут), таким образом, Вы не должны на самом деле ожидать долгое время проверки.

0
ответ дан 23 November 2019 в 04:07

AFAIK, TTL не важен для проблемы DNS-01. Кажется, что Позволяют нам Зашифровать проверки, какие серверы являются авторитетными, и запрашивает один из авторитетных серверов непосредственно, таким образом, необходимая задержка об обеспечении зональных данных для синхронизации ко всем авторитетным серверам, не об ожидании любых кэшей для истечения (это было бы то, где TTL релевантен).


Тем не менее намеченный способ сделать Позволяет нам Зашифровать, должен на самом деле автоматизировать, используете ли Вы проблему HTTP-01 или проблему DNS-01.
главное преимущество этого состоит в том, что с маленьким битом работы заранее сертификаты на самом деле автоматически возобновят по мере необходимости (путем вызова certbot renew регулярно), который довольно важен для того, чтобы сделать эти недолгие сертификаты жизнеспособными.

certbot идет с рядом плагины для того, чтобы сделать обновления DNS (и всегда существует опция, реализовывая Ваше собственное также).

Во время этой регистрации, список плагинов был:

  • certbot-dns-cloudflare
  • certbot-dns-cloudxns
  • certbot-dns-digitalocean
  • certbot-dns-dnsi mple
  • certbot-dns-dnsmadeeasy
  • certbot-dns-google
  • certbot-dns-linode
  • cer tbot-dns-luadns
  • certbot-dns-nsone
  • certbot-dns-ovh
  • certbot-dns-rfc2136
  • certbot-dns-route53

(См. документы для актуального списка + ссылки на соответствующие инструкции)

Т.е., по существу существует плагин с поддержкой RFC2136 (регулярный DNS динамические обновления , совместимый с большинством стандартных серверов DNS, которые Вы могли бы выполнить сами), + ряд плагинов для собственных API некоторых крупных поставщиков услуг DNS.

использование В качестве примера:

certbot certonly \
  --dns-rfc2136 \
  --dns-rfc2136-credentials ~/.secrets/certbot/rfc2136.ini \
  -d example.com

Они также имеют аргумент (имя варьируется плагином) как --dns-rfc2136-propagation-seconds, который допускает тонкую настройку, сколько времени ожидать прежде, чем завершить проблему (чтобы позволить зональным данным синхронизировать к authoritatives).

0
ответ дан 23 November 2019 в 04:07

Думаю, нет никакого хорошего способа реализовать этот банкомат.

Я оставил приглашение certbot открытым для ожидания, пока во втором окне терминала я только что запустил, например, dig -t txt _acme-challenge.mydomain.com (замените адрес txt на свой). Когда он не показывал никаких секунд TTL в ;; РАЗДЕЛ ОТВЕТОВ: больше для этой записи, тогда certbot успешно завершил работу после нажатия клавиши ввода.

Если вам по-прежнему нужно поддерживать SSH-соединение в течение длительного времени (в фоновом режиме), может быть, инструмент экрана Linux пригодится? Я использую его для запуска длительных команд, которым может угрожать тайм-аут SSH. Просто откройте screen-session командой screen -S give_it_a_good_name и запустите там операцию certbot. Затем вы можете отсоединить экран с помощью Ctrl+a d, а затем вернуться к нему с помощью screen -r your_screen_numerical_id и увидеть, что ваша подсказка все еще активна.

Не забудьте позже получить доступ к сеансу экрана под тем же пользователем, которым вы его инициировали! Например. если вы инициировали сеанс экрана как root, вы не найдете его, например, под ubuntu или любым другим пользователем.

1
ответ дан 9 August 2021 в 20:10

Теги

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