thiagoalmeidasa.certbot_route53
Rola Ansible: Certbot (dla Let's Encrypt)
Instaluje i konfiguruje Certbot (dla Let's Encrypt).
Wymagania
Jeśli instalujesz z źródła, wymagany jest Git. Możesz zainstalować Git używając roli geerlingguy.git
.
Ogólnie rzecz biorąc, instalacja z źródła (zobacz sekcję Instalacja ze źródła z Git
) prowadzi do lepszego doświadczenia z używaniem Certbota i Let's Encrypt, szczególnie jeśli korzystasz z starszej wersji systemu operacyjnego.
Zmienne roli
Zmienna certbot_install_from_source
kontroluje, czy Certbot ma być instalowany z Git, czy z menedżera pakietów. Domyślnie jest to to drugie, więc zmienna domyślnie ma wartość no
.
certbot_auto_renew: true
certbot_auto_renew_user: root
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 określonej godzinie i minucie, codziennie. Domyślnie uruchamia certbot renew
(lub certbot-auto renew
) codziennie o 03:30 przez użytkownika używanego w twoim playbooku Ansible. Preferowane jest ustawienie niestandardowego użytkownika/godziny/minuty, aby odnawianie miało miejsce w okresie o małym ruchu i było przeprowadzane przez konto użytkownika, a nie root.
Automatyczne generowanie certyfikatów
Obecnie dostępna jest jedna wbudowana metoda generowania nowych certyfikatów za pomocą tej roli: standalone
. Inne metody (np. z użyciem nginx lub apache i webroot) mogą być dodane w przyszłości.
Pełny przykład: zobacz w pełni funkcjonalny playbook testowy w molecule/default/playbook-standalone-nginx-aws.yml.
certbot_create_if_missing: false
certbot_create_method: certonly
Ustaw certbot_create_if_missing
na yes
lub True
, aby ta rola mogła generować certyfikaty. Ustaw metodę używaną do generowania certyfikatów za pomocą zmiennej certbot_create_method
- obecnie dozwolone wartości to: certonly
.
certbot_admin_email: email@example.com
Adres e-mail używany do zaakceptowania warunków korzystania z Let's Encrypt oraz 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 nadpisać 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.
Instalacja ze źródła z Git
Możesz zainstalować Certbot z jego repozytorium Git, jeśli zajdzie taka potrzeba. Może to być przydatne w kilku przypadkach, zwłaszcza gdy starsze dystrybucje nie mają dostępnych pakietów Certbota (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ć ze źródła, ustaw certbot_install_from_source
na yes
. To sklonuje skonfigurowane certbot_repo
, respektując ustawienie certbot_version
. Jeśli certbot_keep_updated
jest ustawione na yes
, repozytorium jest aktualizowane za każdym razem, gdy ta rola jest uruchamiana.
certbot_dir: /opt/certbot
Katalog, w którym Certbot zostanie sklonowany.
Certyfikaty Wildcard
Let's Encrypt obsługuje generowanie certyfikatów wildcard, ale proces ich generowania i używania jest nieco bardziej skomplikowany. Zobacz komentarze w tym pull request dla przykładu, jak używać tej roli do utrzymywania certyfikatów wildcard.
Michael Porter ma także przewodnik po Tworzeniu certyfikatu wildcard Let's Encrypt z Ansible, szczególnie z Cloudflare.
Zależności
Brak.
Przykładowy playbook
- hosts: servers
vars:
certbot_auto_renew_user: twoja_nazwa_użytkownika_tutaj
certbot_auto_renew_minute: "20"
certbot_auto_renew_hour: "5"
roles:
- thiagoalmeidasa.certbot_route53
Zobacz inne przykłady w katalogu tests/
.
Ręczne tworzenie certyfikatów z certbot
Uwaga: Możesz sprawić, że ta rola automatycznie wygeneruje certyfikaty; zobacz dokumentację "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 ze źródła/Git). Oto kilka przykładowych poleceń do konfigurowania certyfikatów z Certbot:
# Automatycznie dodaj certyfikaty dla wszystkich wirtualnych hostów Apache (używaj ostrożnie!).
certbot --apache
# Generuj certyfikaty, ale nie zmieniaj konfiguracji Apache (bezpieczniej).
certbot --apache certonly
Jeśli chcesz w pełni zautomatyzować proces dodawania nowego certyfikatu, ale nie chcesz korzystać z wbudowanej funkcjonalności tej roli, możesz to zrobić używając opcji wiersza poleceń do rejestracji, zaakceptowania warunków usługi i następnie wygenerowania certyfikatu za pomocą serwera standalone:
- Upewnij się, że usługi nasłuchujące na portach 80 i 443 (Apache, Nginx, Varnish itd.) są zatrzymane.
- Zarejestruj się za pomocą czegoś takiego jak
certbot register --agree-tos --email [twó[email protected]]
- Uwaga: Nie musisz przechodzić przez ten krok w przyszłości, gdy generujesz dodatkowe certyfikaty 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 wcześniej nasłuchiwało na portach 80 i 443.
- Zaktualizuj konfigurację TLS wirtualnego hosta swojego serwera WWW, aby wskazywał na nowy certyfikat (
fullchain.pem
) i klucz prywatny (privkey.pem
), który Certbot właśnie wygenerował dla domeny, którą przekazałeś w poleceniucertbot
. - Przeładuj lub uruchom ponownie serwer WWW, aby używał nowej konfiguracji wirtualnego hosta HTTPS.
Automatyczne odnawianie certyfikatów Certbota
Domyślnie ta rola dodaje zadanie cron, które odnawia wszystkie zainstalowane certyfikaty raz dziennie o godzinie i minucie, które wybierzesz.
Możesz przetestować auto-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
Installs and configures Certbot (for Let's Encrypt).
ansible-galaxy install thiagoalmeidasa.certbot_route53