Давайте шифровать объявил, что они имеют:
Включена поддержка вызова ACME DNS
Как мне ./letsencrypt-auto
сгенерировать новый сертификат, используя проверку DNS-домена?
РЕДАКТИРОВАТЬ
Я имею в виду: Как избежать http/https
привязки порта, используя недавно анонсированную функцию (2015-01-20), которая позволяет подтвердить владение доменом, добавив определенную запись TXT в зоне DNS целевого домена?
lets-encrypt
Пьер Принетти
источник
источник
Ответы:
В настоящее время можно выполнить проверку DNS также с помощью клиента certbot LetsEncrypt в ручном режиме. Автоматизация также возможна (см. Ниже).
Ручной плагин
Вы можете выполнить ручную проверку - с помощью ручного плагина.
Certbot предоставит вам инструкции по обновлению записи TXT для домена вручную, чтобы продолжить проверку.
После того, как вы обновили запись DNS, нажмите Enter, certbot продолжит работу, и если LetsEncrypt CA подтвердит вызов, сертификат будет выдан как обычно.
Вы также можете использовать команду с большим количеством опций, чтобы минимизировать интерактивность и отвечать на вопросы certbot. Обратите внимание, что ручной плагин еще не поддерживает неинтерактивный режим.
Обновление не работает с ручным плагином, так как он работает в неинтерактивном режиме. Больше информации в официальной документации Certbot .
Обновление: ручные крючки
В новой версии Certbot вы можете использовать крючки , например
--manual-auth-hook
,--manual-cleanup-hook
. Хуки - это внешние скрипты, выполняемые Certbot для выполнения задачи.Информация передается в переменных среды - например, домен для проверки, токен запроса. Варс:
CERTBOT_DOMAIN
,CERTBOT_VALIDATION
,CERTBOT_TOKEN
.Вы можете написать свой собственный обработчик или использовать уже существующий, есть много доступных, например, для Cloudflare DNS.
Более подробная информация об официальной документации Certbot Hooks
Автоматизация, Обновление, Сценарии
Если вы хотите автоматизировать проверку проблем DNS, в настоящее время это невозможно с vanila certbot.Обновление: некоторая автоматизация возможна с крючками Certbot.Таким образом, мы создали простой плагин, который поддерживает скрипты с автоматизацией DNS. Это доступно как certbot-external-auth .
Он поддерживает методы проверки DNS, HTTP, TLS-SNI. Вы можете использовать его в режиме обработчика или в режиме вывода JSON.
Режим обработчика
В режиме обработчика плагин certbot + вызывает внешние хуки (программу, скрипт оболочки, python, ...) для проверки и установки. На практике вы пишете простой скрипт обработчика / оболочки, который получает входные аргументы - домен, токен и вносит изменения в DNS. Когда обработчик завершает работу, certbot продолжает проверку как обычно.
Это дает вам дополнительную гибкость, обновление также возможно.
Режим Обработчик также совместим с обезвоженных крючками DNS (бывший letsencrypt.sh). Уже есть много хуков DNS для обычных провайдеров (например, CloudFlare, GoDaddy, AWS). В репозитории есть README с обширными примерами и примерами обработчиков.
Пример с перехваченным DNS-крючком:
Режим JSON
Другой режим плагина - это режим JSON. Он производит один объект JSON на строку. Это позволяет более сложную интеграцию - например, Ansible или какой-либо менеджер развертывания вызывает certbot. Связь осуществляется через STDOUT и STDIN. Cerbot создает объект JSON с данными для проверки, например:
После обновления DNS вызывающий абонент отправляет символ новой строки в STDIN сервера certbot, чтобы сообщить, что он может продолжить проверку.
Это позволяет автоматизировать и управлять сертификатами с центрального сервера управления. Для установки вы можете развернуть сертификаты через SSH.
Для получения дополнительной информации обратитесь к readme и примерам на certbot-external-auth GitHub.
РЕДАКТИРОВАТЬ: есть также новое сообщение в блоге, описывающее проблему проверки DNS и использование плагина.
РЕДАКТИРОВАТЬ: в настоящее время мы работаем над Ansible двухэтапной проверки, скоро будет выключен.
источник
certbot certonly --preferred-challenges dns -d example.com
) для первоначального запроса. После тестирования и переключения A-записи используйте общий метод webroot (certbot certonly webroot -d example.com -w /path/to/webroot
), используя те же доменные имена, что и раньше. Если все сделано правильно, certbot распознает существующий сертификат / конфигурацию и обновит параметры обновления, поэтому сертификат будет автоматически обновляться в будущем.Мне удалось использовать
dehydrated
клиент для получения сертификата с использованием проверки DNS.https://github.com/lukas2511/dehydrated
Вам нужно будет использовать правильный хук проверки DNS для вашего домена, но есть несколько вариантов, доступных в качестве примеров:
https://github.com/lukas2511/dehydrated/wiki/Examples-for-DNS-01-hooks
источник
route53.rb
скрипте ловушки.На сегодняшний день официальный клиент не поддерживает тип вызова DNS-01 (пока).
См. Https://community.letsencrypt.org/t/status-of-official-letsencrypt-clients-dns-01-challenge-support/9427.
Вы можете следить за прогрессом в этом PR . Альтернативно, есть некоторые клиенты, которые уже поддерживают это.
источник
Я написал хук-скрипт для клиента letsencrypt.sh, который позволяет использовать проверку DNS «Позволяет зашифровать» для провайдеров DNS, которые не предоставляют API для использования (иначе, требуется ручной ввод и проверка).
Вы можете проверить это здесь: https://github.com/jbjonesjr/letsencrypt-manual-hook
источник
Как упоминалось в предыдущих ответах, вы можете легко проверить домен по DNS с помощью этого:
apt-get install -y git ruby letsencrypt git clone https://github.com/lukas2511/dehydrated.git git clone https://github.com/jbjonesjr/letsencrypt-manual-hook.git dehydrated/hooks/manual
./dehydrated/dehydrated -c -t dns-01 -d www.example.com -k ./dehydrated/hooks /manual/manual_hook.rb
источник
После того, как я попробовал различные комбинации, это то, что мне помогло, используя git-репозитории dehydrated и letsencrypt-manual-hook . Если приведенные ниже шаги работают для вас, не забудьте пометить эти репозитории
ПРИМЕЧАНИЕ: это в дополнение к ответам panticz.de и alexcline
Вы получите хеш (после выполнения вышеуказанной команды), создайте запись TXT в вашем DNS. Убедитесь, что он работает, запустив приведенную ниже команду или GSuite Toolbox
Теперь нажмите Enter при появлении запроса. Это не сработало для меня, хотя запись TXT была обновлена. Мне пришлось нажать Ctrl + C и снова запустить команду.
Теперь ваши публичные и частные сертификаты присутствуют здесь.
Чтобы продлить (минимальное время ожидания составляет 30 дней), снова повторите ту же команду.
источник
Уго Ландау написал на Go клиент ACME ( https://github.com/hlandau/acme ), который поддерживает проблемы DNS (с помощью протокола nsupdate от BIND). Это работает безупречно для меня по крайней мере 18 месяцев.
источник