ussrlongbow.certbot

Rola Ansible: Certbot (dla Let's Encrypt)

Status budowy

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:

  1. Upewnij się, że wszelkie usługi nasłuchujące na portach 80 i 443 (Apache, Nginx, Varnish itp.) są zatrzymane.
  2. 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.
  3. Wygeneruj certyfikat dla domeny, której DNS wskazuje na ten serwer: certbot certonly --noninteractive --standalone -d example.com -d www.example.com
  4. Uruchom ponownie wszystko, co nasłuchiwało na portach 80 i 443 wcześniej.
  5. 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 poleceniu certbot.
  6. 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.

Zainstaluj
ansible-galaxy install ussrlongbow.certbot
Licencja
mit
Pobrania
6.9k
Właściciel