mprahl.lets-encrypt-route-53
lets-encrypt-route-53
To jest rola Ansible, która automatyzuje generowanie podpisanych certyfikatów Let's Encrypt z wykorzystaniem wyzwań DNS na Route 53 (AWS) firmy Amazon.
Należy pamiętać, że jako część tej roli, zainstalowane zostaną openssl
, boto, i
pyOpenSSL. Jeśli używasz CentOS, RHEL lub Mac OS, rola zainstaluje pip
, a następnie boto
i pyOpenSSL
w wirtualnym środowisku Pythona, ponieważ pakietowane wersje nie są dostępne lub są nieaktualne. Należy również pamiętać, że
EPEL jest wymagane na CentOS i RHEL.
Jeśli nie używasz tej roli na Debianie/Ubuntu, CentOS/Red Hat, Mac OS lub FreeBSD, openssl
,
boto
i pyOpenSSL
muszą być zainstalowane ręcznie przed użyciem tej roli.
Wymagania
Do użycia tej roli potrzebna jest wersja Ansible 2.7 lub nowsza. Jeśli używasz starszej wersji Ansible, użyj wersji 4.2.1 tej roli. Rola musi być także uruchamiana przez użytkownika root lub za pomocą sudo/become.
Tagowanie roli
- install - używane do tagowania zadań instalujących wymagane zależności.
- openssl - używane do tagowania zadań generujących klucze prywatne i CSR.
Zmienne roli
Fakty ustawione przez rolę
- ler53_cert_changed - jest ustawione na
True
, gdy certyfikat jest tworzony lub odnawiany.
Wymagane zmienne
- ler53_route_53_domain - domena Route 53 (AWS), dla której generowany jest certyfikat SSL.
Jest to wymagany parametr, jeśli nie jest podany parametr
ler53_route_53_zone_id
. - ler53_route_53_zone_id - identyfikator strefy Route 53 (AWS), dla której generowany jest certyfikat SSL.
Jest to wymagany parametr, jeśli nie jest podany parametr
ler53_route_53_domain
. Użyj tego parametru, jeśli nie masz uprawnień AWS do wykonania akcji route53:ListHostedZones.
Opcjonalne zmienne
- ler53_cert_common_name - nazwa wspólna dla generowanego certyfikatu SSL. Domyślnie jest to wartość
ansible_fqdn
. - ler53_cert_sans - lista alternatywnych nazw DNS (SAN) dla tej samej domeny, co
określona w
ler53_route_53_domain
, które mają być uwzględnione w CSR. Należy pamiętać, że dla wartościler53_cert_common_name
automatycznie dodawana jest SAN DNS i nie należy jej dodawać do tej listy. Ta zmienna nie jest domyślnie zdefiniowana. - ler53_cert_key_usages - lista zastosowań klucza, które mają być uwzględnione w CSR (Let's Encrypt może
ograniczać niektóre z nich). Domyślnie to
digitalSignature
ikeyEncipherment
. - ler53_key_size - rozmiar klucza prywatnego, który jest sparowany z generowanym certyfikatem. Domyślnie to
2048
. - ler53_cert_dir - ścieżka do katalogu, w którym będą przechowywane klucz prywatny, CSR i certyfikat.
Domyślnie to
/etc/ssl/{{ ler53_cert_common_name }}
. - ler53_key_file_name - nazwa pliku klucza prywatnego, który jest sparowany z generowanym certyfikatem.
Domyślnie to
{{ ler53_cert_common_name }}.key
. - ler53_cert_file_name - nazwa pliku certyfikatu, który jest generowany. Domyślnie to
{{ ler53_cert_common_name }}.crt
. - ler53_csr_file_name - nazwa pliku żądania podpisania certyfikatu (CSR), które jest generowane.
Domyślnie to
{{ ler53_cert_common_name }}.csr
. - ler53_intermediate_file_name - nazwa pliku pośredniego CA pobranego z Let's Encrypt. Domyślnie to
{{ ler53_cert_common_name }}.intermediate.pem
. - ler53_cert_and_intermediate_file_name - nazwa pliku utworzonego z certyfikatem oraz
pośrednim CA sklejonym razem. Domyślnie to
{{ ler53_cert_common_name }}.pem
. - ler53_cert_files_mode - tryb/pozwolenia do narzucenia na klucz prywatny, CSR i certyfikat. Domyślnie to
0600
. - ler53_cert_files_owner - właściciel pliku do narzucenia na klucz prywatny, CSR i certyfikat.
Domyślnie to
root
. - ler53_cert_files_group - grupa plików do narzucenia na klucz prywatny, CSR i certyfikat.
Domyślnie to
root
. - ler53_account_email - adres e-mail powiązany z twoim kontem Let's Encrypt. Więcej informacji można znaleźć w module Let's Encrypt.
- ler53_account_key_size - rozmiar klucza konta Let's Encrypt, który jest tworzony, jeśli nie jest obecny. Domyślnie to
2048
. - ler53_account_key_dir - ścieżka do katalogu, w którym ma być przechowywany klucz konta Let's Encrypt.
Domyślnie to
/etc/ssl/lets_encrypt
. - ler53_account_key_file_name - nazwa pliku klucza konta Let's Encrypt. Domyślnie to
lets_encrypt_account.key
. - ler53_cert_remaining_days_before_renewal - minimalna liczba dni pozostałych do odnowienia aktualnego
certyfikatu. Domyślnie to
10
. - ler53_new_cert_when_csr_changes - usuń istniejący certyfikat, gdy CSR się zmienia. Jest to przydatne, gdy zmieniasz
nazwę wspólną lub SAN w certyfikacie i chcesz wygenerować nowy certyfikat bez czekania na wygaśnięcie. Domyślnie to
false
. - ler53_cert_extended_key_usages - Dodatkowe ograniczenia (np. uwierzytelnianie klienta, uwierzytelnianie serwera) dotyczące dozwolonych celów, dla których może być użyty klucz publiczny.
- ler53_service_handlers - lista słowników opisujących serwisowe handlerzy, które mają być uruchomione, gdy certyfikat zostanie zaktualizowany w formacie
{'name': 'httpd', 'state': 'restarted'}
. - ler53_acme_directory - Katalog ACME do użycia. Domyślnie to
https://acme-v02.api.letsencrypt.org/directory
. Może być przydatne, aby nadpisać to, jeśli chcesz przetestować tę rolę przeciwko testowej instancji Let's Encrypt. - ler53_aws_access_key - klucz dostępu do użytkownika AWS, który ma uprawnienia do dodawania rekordów do domeny, dla której generowany jest certyfikat SSL. Jeśli nie jest określony, SDK AWS określi klucz dostępu.
- ler53_aws_secret_key - klucz tajny użytkownika AWS, który ma uprawnienia do dodawania rekordów do domeny, dla której generowany jest certyfikat SSL. Jeśli nie jest określony, SDK AWS określi klucz tajny.
Przykładowy playbook
- name: Wygeneruj certyfikat SSL dla host.example.com
hosts: host
become: yes
vars:
- ler53_cert_common_name: host.example.com
- ler53_route_53_domain: example.com
roles:
- mprahl.lets-encrypt-route-53
Licencja
MIT
automates the generation of Let's Encrypt signed certificates with DNS challenges on Amazon's Route 53 (AWS)
ansible-galaxy install mprahl.lets-encrypt-route-53