ussrlongbow.certbot
Rola Ansible: Certbot (dla Let's Encrypt)
Instaluje i konfiguruje Certbota (dla Let's Encrypt).
Wymagania
Jeśli instalujesz z kodu źródłowego, wymagany jest Git. Możesz zainstalować Git używając roli geerlingguy.git
.
Zwykle instalacja z kodu źródłowego (patrz sekcja Instalacja z kodu źródłowego z Git
) prowadzi do lepszego doświadczenia korzystania z Certbota i Let's Encrypt, zwłaszcza jeśli używasz starszej wersji systemu operacyjnego.
Zmienne roli
Zmienna certbot_install_from_source
kontroluje, czy zainstalować Certbota z Git, czy z menedżera pakietów. Domyślnie zainstalowany jest z menedżera pakietów, więc zmienna domyślnie wynosi nie
.
certbot_auto_renew: true
certbot_auto_renew_user: "{{ ansible_user | default(lookup('env', 'USER')) }}"
certbot_auto_renew_hour: 3
certbot_auto_renew_minute: 30
certbot_auto_renew_options: "--quiet --no-self-upgrade"
Domyślnie, ta rola konfiguruje zadanie cron, które uruchamia się pod podanym kontem użytkownika o danej godzinie i minucie, codziennie. Domyślnie zadanie uruchamia certbot renew
(lub certbot-auto renew
) codziennie o 03:30:00 przez użytkownika, którego używasz w swoim playbooku Ansible. Preferowane jest ustawienie własnego użytkownika/godziny/minuty, aby odnawianie odbywało się w czasie mniejszego ruchu i by było wykonywane przez konto użytkownika niebędącego rootem.
Automatyczne generowanie certyfikatów
Obecnie istnieje jedna wbudowana metoda generowania nowych certyfikatów za pomocą tej roli: standalone
. Inne metody (np. używając nginx lub apache i katalogu webroot) mogą zostać dodane w przyszłości.
Przykład pełny: zobacz w pełni funkcjonalny testowy playbook w molecule/default/playbook-standalone-nginx-aws.yml.
certbot_create_if_missing: false
certbot_create_method: standalone
Ustaw certbot_create_if_missing
na tak
lub True
, aby pozwolić tej roli generować certyfikaty. Ustaw metodę używaną do generowania certyfikatów za pomocą zmiennej certbot_create_method
- obecnie dozwolone wartości to: standalone
.
certbot_admin_email: email@example.com
Adres e-mail wykorzystywany do zaakceptowania Warunków Użytkowania Let's Encrypt i subskrybowania powiadomień związanych z certyfikatami. Powinien być dostosowany i ustawiony na adres e-mail, który ty lub twoja organizacja regularnie monitorujecie.
certbot_certs: []
# - email: [email protected]
# domains:
# - example1.com
# - example2.com
# - domains:
# - example3.com
Lista domen (i innych danych), dla których powinny być generowane certyfikaty. Możesz dodać klucz email
do dowolnego elementu listy, aby zastąpić certbot_admin_email
.
certbot_create_command: "{{ certbot_script }} certonly --standalone --noninteractive --agree-tos --email {{ cert_item.email | default(certbot_admin_email) }} -d {{ cert_item.domains | join(',') }}"
certbot_create_command
definiuje polecenie używane do generowania certyfikatu.
Samodzielne generowanie certyfikatów
certbot_create_standalone_stop_services:
- nginx
Usługi, które powinny być zatrzymane, gdy certbot
uruchamia własny serwer samodzielny na portach 80 i 443. Jeśli korzystasz z Apache, ustaw to na apache2
(Ubuntu), lub httpd
(RHEL), lub jeśli masz Nginx na porcie 443 i coś innego na porcie 80 (np. Varnish, aplikację Java lub coś innego), dodaj to do listy, aby zostało zatrzymane podczas generowania certyfikatu.
Te usługi zostaną zatrzymane tylko przy pierwszym generowaniu nowego certyfikatu.
Instalacja z kodu źródłowego z Git
Możesz zainstalować Certbota z repozytorium Git, jeśli chcesz. Może to być przydatne w kilku przypadkach, ale szczególnie, gdy starsze dystrybucje nie mają dostępnych pakietów Certbot (np. CentOS < 7, Ubuntu < 16.10 i Debian < 8).
certbot_install_from_source: false
certbot_repo: https://github.com/certbot/certbot.git
certbot_version: master
certbot_keep_updated: true
Opcje repozytorium Git Certbota. Aby zainstalować z kodu źródłowego, ustaw certbot_install_from_source
na tak
. To klonuje skonfigurowane certbot_repo
, przestrzegając ustawienia certbot_version
. Jeśli certbot_keep_updated
jest ustawione na tak
, repozytorium jest aktualizowane za każdym razem, gdy ta rola jest uruchamiana.
certbot_dir: /opt/certbot
Katalog, w którym Certbot będzie klonowany.
Certyfikaty dzikie karty
Let's Encrypt obsługuje generowanie certyfikatów dzikich kart, ale proces ich generowania i używania jest nieco bardziej skomplikowany. Zobacz komentarze w tym pull request jako przykład, jak używać tej roli do utrzymywania certyfikatów dzikich kart.
Michael Porter również ma przewodnik na temat Tworzenie certyfikatu dzikiej karty Let's Encrypt za pomocą Ansible, szczególnie z Cloudflare.
Zależności
Brak.
Przykładowy playbook
- hosts: serwery
vars:
certbot_auto_renew_user: twoja_nazwa_użytkownika
certbot_auto_renew_minute: 20
certbot_auto_renew_hour: 5
roles:
- geerlingguy.certbot
Zobacz inne przykłady w katalogu tests/
.
Ręczne tworzenie certyfikatów za pomocą certbota
Uwaga: Możesz mieć tę rolę do automatycznego generowania certyfikatów; patrz dokumentacja "Automatyczne generowanie certyfikatów" powyżej.
Możesz ręcznie tworzyć certyfikaty za pomocą skryptu certbot
(lub certbot-auto
) (użyj letsencrypt
na Ubuntu 16.04, lub użyj /opt/certbot/certbot-auto
, jeśli instalujesz z kodu źródłowego/Git). Oto kilka przykładowych poleceń do skonfigurowania certyfikatów za pomocą Certbota:
# Automatycznie dodaj certyfikaty dla wszystkich wirtualnych hostów Apache (używaj z ostrożnością!).
certbot --apache
# Generuj certyfikaty, ale nie modyfikuj konfiguracji Apache (bezpieczniej).
certbot --apache certonly
Jeśli chcesz całkowicie zautomatyzować proces dodawania nowego certyfikatu, ale nie chcesz korzystać z wbudowanej funkcji tej roli, możesz to zrobić używając opcji wiersza poleceń do rejestracji, zaakceptowania warunków użytkowania, a następnie generowania certyfikatu przy użyciu serwera samodzielnego:
- Upewnij się, że wszelkie usługi nasłuchujące na portach 80 i 443 (Apache, Nginx, Varnish itp.) są zatrzymane.
- Zarejestruj się za pomocą
certbot register --agree-tos --email [[email protected]]
- Uwaga: Nie będziesz musiał robić tego kroku w przyszłości, przy generowaniu dodatkowych certyfikatów na tym samym serwerze. - Wygeneruj certyfikat dla domeny, której DNS wskazuje na ten serwer:
certbot certonly --noninteractive --standalone -d example.com -d www.example.com
- Uruchom ponownie wszystko, co nasłuchiwało na portach 80 i 443 wcześniej.
- Zaktualizuj konfigurację TLS swojego wirtualnego hosta, aby wskazywała na nowy certyfikat (
fullchain.pem
) i klucz prywatny (privkey.pem
), które Certbot właśnie wygenerował dla domeny, którą podałeś w poleceniucertbot
. - Przeładuj lub zrestartuj swój serwer WWW, aby użył nowej konfiguracji wirtualnego hosta HTTPS.
Automatyczne odnawianie certyfikatów Certbota
Domyślnie ta rola dodaje zadanie cron, które będzie odświeżać wszystkie zainstalowane certyfikaty raz dziennie o godzinie i minucie, które wybierzesz.
Możesz przetestować automatyczne odnawianie (bez faktycznego odnawiania certyfikatu) za pomocą polecenia:
/opt/certbot/certbot-auto renew --dry-run
Zobacz pełną dokumentację i opcje na stronie Certbota.
Licencja
MIT / BSD
Informacje o autorze
Ta rola została stworzona w 2016 roku przez Jeffa Geerlinga, autora Ansible for DevOps.
Installs and configures Certbot (for Let's Encrypt).
ansible-galaxy install ussrlongbow.certbot