В даний час можна виконати перевірку DNS також з клієнтом certbot LetsEncrypt в ручному режимі. Також можлива автоматизація (див. Нижче).
Ручний плагін
Ви можете виконати перевірку вручну - за допомогою ручного плагіна.
certbot -d bristol3.pki.enigmabridge.com --manual --preferred-challenges dns certonly
Потім Certbot надасть вам інструкцію щодо вручну оновити запис TXT для домену, щоб продовжити перевірку.
Please deploy a DNS TXT record under the name
_acme-challenge.bristol3.pki.enigmabridge.com with the following value:
667drNmQL3vX6bu8YZlgy0wKNBlCny8yrjF1lSaUndc
Once this is deployed,
Press ENTER to continue
Після оновлення запису DNS натисніть Enter, certbot продовжиться, і якщо LetsEncrypt CA перевірить виклик, сертифікат видається як звичайно.
Ви також можете використовувати команду з додатковими опціями, щоб мінімізувати інтерактивність та відповідати на питання certbot. Зауважте, що ручний плагін ще не підтримує неінтерактивний режим.
certbot --text --agree-tos --email you@example.com -d bristol3.pki.enigmabridge.com --manual --preferred-challenges dns --expand --renew-by-default --manual-public-ip-logging-ok certonly
Оновлення не працює з ручним плагіном, оскільки воно працює в неінтерактивному режимі. Більше інформації в офіційній документації на Certbot .
Оновлення: ручні гачки
У новій версії Certbot ви можете використовувати гачки , наприклад --manual-auth-hook
, --manual-cleanup-hook
. Гачки - це зовнішні скрипти, виконані Certbot для виконання завдання.
Інформація передається в змінних середовища - наприклад, домен для перевірки, маркер виклику. Варс: CERTBOT_DOMAIN
, CERTBOT_VALIDATION
, CERTBOT_TOKEN
.
certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /path/to/dns/authenticator.sh --manual-cleanup-hook /path/to/dns/cleanup.sh -d secure.example.com
Ви можете написати власний обробник або використовувати вже наявний, доступний безліч, наприклад, для Cloudflare DNS.
Більше інформації про офіційну документацію на гачки Certbot
Автоматизація, оновлення, сценарій
Якщо ви хочете автоматизувати перевірку викликів DNS, наразі неможливо за допомогою ваніла certbot. Оновлення: деяка автоматизація можлива за допомогою гачків Certbot.
Таким чином, ми створили простий плагін, який підтримує сценарії з автоматизацією DNS. Він доступний як certbot-external-auth .
pip install certbot-external-auth
Він підтримує методи перевірки DNS, HTTP, TLS-SNI. Ви можете використовувати його в режимі обробника або в режимі виводу JSON.
Режим обробника
У режимі обробника certbot + плагін викликає зовнішні гачки (програма, скрипт оболонки, python, ...) для виконання перевірки та встановлення. На практиці ви пишете простий скрипт обробника / оболонки, який отримує вхідні аргументи - домен, маркер і вносить зміни в DNS. Коли обробник закінчується, certbot продовжує перевірку, як зазвичай.
Це надає вам додаткову гнучкість, можливо також оновлення.
Режим обробника також сумісний з дегідрованими гачками DNS (колишній letsencrypt.sh). Існує вже багато гачків DNS для звичайних провайдерів (наприклад, CloudFlare, GoDaddy, AWS). У сховищі є README з великими прикладами та обробниками прикладів.
Приклад із зневодненим гачком DNS:
certbot \
--text --agree-tos --email you@example.com \
--expand --renew-by-default \
--configurator certbot-external-auth:out \
--certbot-external-auth:out-public-ip-logging-ok \
-d "bristol3.pki.enigmabridge.com" \
--preferred-challenges dns \
--certbot-external-auth:out-handler ./dehydrated-example.sh \
--certbot-external-auth:out-dehydrated-dns \
run
Режим JSON
Ще одним плагінним режимом є режим JSON. Він створює один об'єкт JSON на рядок. Це забезпечує більш складну інтеграцію - наприклад, Ansible або якийсь менеджер розгортання викликає certbot. Зв'язок здійснюється через STDOUT та STDIN. Сербо виробляє об'єкт JSON з даними для здійснення перевірки, наприклад,
certbot \
--text --agree-tos --email you@example.com \
--expand --renew-by-default \
--configurator certbot-external-auth:out \
--certbot-external-auth:out-public-ip-logging-ok \
-d "bristol3.pki.enigmabridge.com" \
--preferred-challenges dns \
certonly 2>/dev/null
{"cmd": "perform_challenge", "type": "dns-01", "domain": "bs3.pki.enigmabridge.com", "token": "3gJ87yANDpmuuKVL2ktfQ0_qURQ3mN0IfqgbTU_AGS4", "validation": "ejEDZXYEeYHUxqBAiX4csh8GKkeVX7utK6BBOBshZ1Y", "txt_domain": "_acme-challenge.bs3.pki.enigmabridge.com", "key_auth": "3gJ87yANDpmuuKVL2ktfQ0_qURQ3mN0IfqgbTU_AGS4.tRQM98JsABZRm5-NiotcgD212RAUPPbyeDP30Ob_7-0"}
Після оновлення DNS абонент надсилає новий рядковий символ STDIN certbot, щоб сигналізувати, що він може продовжувати перевірку.
Це дозволяє автоматизувати та керувати сертифікатами з центрального сервера управління. Для установки ви можете розгорнути сертифікати через SSH.
Для отримання додаткової інформації зверніться до readme та прикладів на certbot-external-auth GitHub.
РЕДАКТУВАННЯ. Також є нова публікація в блозі, що описує проблему перевірки DNS та використання плагінів.
РЕДАКТУВАННЯ. Зараз ми працюємо над двоступеневою валідизацією відповіді.