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:

  1. Upewnij się, że usługi nasłuchujące na portach 80 i 443 (Apache, Nginx, Varnish itd.) są zatrzymane.
  2. 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.
  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 wcześniej nasłuchiwało na portach 80 i 443.
  5. 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 poleceniu certbot.
  6. 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

Zainstaluj
ansible-galaxy install thiagoalmeidasa.certbot_route53
Licencja
mit
Pobrania
4.9k
Właściciel
Linux, open source, containers, docker. Nerd, with a big interest in the philosophical, biological, social, and cultural aspects of human life.