Obecnie możliwe jest sprawdzenie poprawności DNS również za pomocą klienta certbot LetsEncrypt w trybie ręcznym. Możliwa jest również automatyzacja (patrz poniżej).
Wtyczka ręczna
Możesz albo dokonać ręcznej weryfikacji - za pomocą ręcznej wtyczki.
certbot -d bristol3.pki.enigmabridge.com --manual --preferred-challenges dns certonly
Certbot dostarczy następnie instrukcje dotyczące ręcznej aktualizacji rekordu TXT dla domeny w celu kontynuacji sprawdzania poprawności.
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
Po zaktualizowaniu rekordu DNS naciśnij klawisz Enter, certbot będzie kontynuował, a jeśli LetsEncrypt CA zweryfikuje wyzwanie, certyfikat zostanie wydany jak zwykle.
Możesz także użyć polecenia z większą liczbą opcji, aby zminimalizować interaktywność i odpowiadać na pytania certyfikatów. Pamiętaj, że ręczna wtyczka nie obsługuje jeszcze trybu nieinteraktywnego.
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
Odnowienie nie działa z ręczną wtyczką, ponieważ działa w trybie nieinteraktywnym. Więcej informacji w oficjalnej dokumentacji Certbot .
Aktualizacja: ręczne zaczepy
W nowej wersji Certbot można używać haków , na przykład --manual-auth-hook
, --manual-cleanup-hook
. Haki to zewnętrzne skrypty wykonywane przez Certbot w celu wykonania zadania.
Informacje są przekazywane w zmiennych środowiskowych - np. Domena do weryfikacji, token wyzwania. Vars: 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
Możesz napisać własny moduł obsługi lub użyć już istniejącego, istnieje wiele dostępnych, np. Dla Cloudflare DNS.
Więcej informacji na temat oficjalnej dokumentacji haków Certbot
Automatyzacja, odnawianie, tworzenie skryptów
Jeśli chcesz zautomatyzować weryfikację wyzwań DNS, obecnie nie jest to możliwe dzięki vanila certbot. Aktualizacja: pewna automatyzacja jest możliwa dzięki hakom Certbot.
W ten sposób stworzyliśmy prostą wtyczkę, która obsługuje skrypty z automatyzacją DNS. Jest dostępny jako certbot-external-auth .
pip install certbot-external-auth
Obsługuje metody sprawdzania poprawności DNS, HTTP, TLS-SNI. Można go użyć w trybie modułu obsługi lub w trybie wyjściowym JSON.
Tryb obsługi
W trybie obsługi wtyczka certbot + wywołuje zewnętrzne zaczepienia (program, skrypt powłoki, python, ...) w celu przeprowadzenia weryfikacji i instalacji. W praktyce piszesz prosty skrypt obsługi / powłoki, który pobiera argumenty wejściowe - domena, token i dokonuje zmiany w DNS. Po zakończeniu procedury obsługi certbot kontynuuje walidację jak zwykle.
Daje to dodatkową elastyczność, możliwa jest także odnowa.
Tryb obsługi jest również kompatybilny z hakami odwodnionego DNS (wcześniej letsencrypt.sh). Istnieje już wiele haków DNS dla popularnych dostawców (np. CloudFlare, GoDaddy, AWS). W repozytorium znajduje się plik README z obszernymi przykładami i procedurami obsługi przykładów.
Przykład z hakiem odwodnionego 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
Tryb JSON
Kolejnym trybem wtyczki jest tryb JSON. Tworzy jeden obiekt JSON w wierszu. Umożliwia to bardziej skomplikowaną integrację - np. Ansible lub jakiś menedżer wdrażania dzwoni do certbota. Komunikacja odbywa się za pośrednictwem STDOUT i STDIN. Cerbot produkuje obiekt JSON z danymi w celu przeprowadzenia weryfikacji, np.
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"}
Po aktualizacji DNS wywołujący wysyła znak nowej linii do STDIN certbota, aby go zasygnalizować, może kontynuować sprawdzanie poprawności.
Umożliwia to automatyzację i zarządzanie certyfikatami z centralnego serwera zarządzania. Do instalacji możesz wdrożyć certyfikaty przez SSH.
Aby uzyskać więcej informacji, zapoznaj się z plikiem Readme i przykładami na GitHub certbot-external-auth .
EDYCJA: Jest też nowy post na blogu opisujący problem z weryfikacją DNS i użyciem wtyczki.
EDYCJA: obecnie pracujemy nad 2-etapową weryfikacją Ansible, wkrótce będzie dostępna.