mprahl.lets-encrypt-route-53
lets-encrypt-route-53
Dies ist eine Ansible-Rolle, die die Erstellung von von Let's Encrypt signierten Zertifikaten mit DNS-Herausforderungen auf Amazons Route 53 (AWS) automatisiert.
Bitte beachten Sie, dass im Rahmen dieser Rolle openssl
, boto und pyOpenSSL installiert werden. Wenn Sie CentOS, RHEL oder Mac OS verwenden, wird die Rolle pip
installieren und danach boto
und pyOpenSSL
in einer Python-Virtualenv installieren, da die paketierten Versionen entweder nicht verfügbar oder nicht aktuell genug sind. Bitte beachten Sie, dass EPEL auf CentOS und RHEL erforderlich ist.
Wenn Sie diese Rolle nicht auf Debian/Ubuntu, CentOS/Red Hat, Mac OS oder FreeBSD verwenden, müssen openssl
, boto
und pyOpenSSL
manuell installiert werden, bevor Sie diese Rolle verwenden.
Anforderungen
Ansible 2.7+ wird für diese Rolle benötigt. Wenn Sie eine ältere Version von Ansible verwenden, benutzen Sie Version 4.2.1 dieser Rolle. Diese Rolle muss außerdem von root oder über sudo/become ausgeführt werden.
Rollentags
- install - wird verwendet, um die Aufgaben zu kennzeichnen, die die erforderlichen Abhängigkeiten installieren.
- openssl - wird verwendet, um die Aufgaben zu kennzeichnen, die die privaten Schlüssel und CSR generieren.
Rollenspezifische Variablen
Fakten, die von der Rolle gesetzt werden
- ler53_cert_changed - wird auf
True
gesetzt, wenn das Zertifikat erstellt oder erneuert wurde.
Erforderliche Variablen
- ler53_route_53_domain - die Route 53 (AWS) Domain, für die das SSL-Zertifikat erstellt wird. Dies ist ein erforderlicher Parameter, falls der Parameter
ler53_route_53_zone_id
nicht bereitgestellt wird. - ler53_route_53_zone_id - die Route 53 (AWS) zone_id, für die das SSL-Zertifikat erstellt wird. Dies ist ein erforderlicher Parameter, falls der Parameter
ler53_route_53_domain
nicht bereitgestellt wird. Verwenden Sie diesen Parameter, wenn Sie nicht über die AWS-Rechte verfügen, um route53:ListHostedZones durchzuführen.
Optionale Variablen
- ler53_cert_common_name - der gemeinsame Name für das zu erstellende SSL-Zertifikat. Standardmäßig wird der Wert von
ansible_fqdn
verwendet. - ler53_cert_sans - eine Liste von DNS-Subject Alternative Names (SANs) der gleichen Domain, wie in
ler53_route_53_domain
angegeben, die im CSR enthalten sein sollen. Bitte beachten Sie, dass ein DNS-SAN für den Wert vonler53_cert_common_name
automatisch hinzugefügt wird und nicht in diese Liste aufgenommen werden sollte. Diese Variable ist standardmäßig nicht definiert. - ler53_cert_key_usages - eine Liste von Schlüsselverwendungen, die im CSR enthalten sein sollen (Let's Encrypt kann einige einschränken). Standardmäßig ist dies
digitalSignature
undkeyEncipherment
. - ler53_key_size - die Größe des privaten Schlüssels, der mit dem zu erstellenden Zertifikat gekoppelt ist. Standardmäßig ist dies
2048
. - ler53_cert_dir - der Pfad zum Verzeichnis, um den privaten Schlüssel, CSR und das Zertifikat zu speichern. Standardmäßig ist dies
/etc/ssl/{{ ler53_cert_common_name }}
. - ler53_key_file_name - der Dateiname des privaten Schlüssels, der mit dem zu erstellenden Zertifikat gekoppelt ist. Standardmäßig ist dies
{{ ler53_cert_common_name }}.key
. - ler53_cert_file_name - der Dateiname des zu erstellenden Zertifikats. Standardmäßig ist dies
{{ ler53_cert_common_name }}.crt
. - ler53_csr_file_name - der Dateiname des zu erstellenden Certificate Signing Request (CSR). Standardmäßig ist dies
{{ ler53_cert_common_name }}.csr
. - ler53_intermediate_file_name - der Dateiname der von Let's Encrypt heruntergeladenen intermediären CA. Standardmäßig ist dies
{{ ler53_cert_common_name }}.intermediate.pem
. - ler53_cert_and_intermediate_file_name - der Name der Datei, die mit dem Zertifikat und der übergeordneten CA zusammengeführt wurde. Standardmäßig ist dies
{{ ler53_cert_common_name }}.pem
. - ler53_cert_files_mode - die Dateiberechtigungen, die für den privaten Schlüssel, CSR und das Zertifikat durchgesetzt werden. Standardmäßig ist dies
0600
. - ler53_cert_files_owner - der Dateibesitzer, der für den privaten Schlüssel, CSR und das Zertifikat durchgesetzt wird. Standardmäßig ist dies
root
. - ler53_cert_files_group - die Datei-Gruppe, die für den privaten Schlüssel, CSR und das Zertifikat durchgesetzt wird. Standardmäßig ist dies
root
. - ler53_account_email - eine E-Mail-Adresse, die mit Ihrem Let's Encrypt-Konto verknüpft wird. Weitere Informationen finden Sie im Let's Encrypt-Modul.
- ler53_account_key_size - die Größe des Let's Encrypt-Kontóschlüssels, der erstellt wird, wenn er nicht vorhanden ist. Standardmäßig ist dies
2048
. - ler53_account_key_dir - der Pfad zum Verzeichnis, um den Let's Encrypt-Kontóschlüssel zu speichern. Standardmäßig ist dies
/etc/ssl/lets_encrypt
. - ler53_account_key_file_name - der Dateiname des Let's Encrypt-Kontóschlüssels. Standardmäßig ist dies
lets_encrypt_account.key
. - ler53_cert_remaining_days_before_renewal - die Mindestanzahl von Tagen, die das aktuelle Zertifikat gültig ist, bevor es erneuert wird. Standardmäßig sind dies
10
. - ler53_new_cert_when_csr_changes - löscht das vorhandene Zertifikat, wenn sich der CSR ändert. Dies ist nützlich, wenn Sie den gemeinsamen Namen oder die SANs Ihres Zertifikats ändern und ein neues Zertifikat generieren möchten, ohne auf das Ablaufen zu warten. Standardmäßig ist dies
false
. - ler53_cert_extended_key_usages - Zusätzliche Einschränkungen (z. B. Client-Authentifizierung, Server-Authentifizierung) zu den zulässigen Zwecken, für die der öffentliche Schlüssel verwendet werden kann.
- ler53_service_handlers - Eine Liste von Dictionaries, die Service-Handler beschreiben, die bei der Aktualisierung eines Zertifikats ausgeführt werden sollen, im Format
{'name': 'httpd', 'state': 'restarted'}
. - ler53_acme_directory - Das zu verwendende ACME-Verzeichnis. Dies ist standardmäßig
https://acme-v02.api.letsencrypt.org/directory
. Dies kann nützlich sein, um die Rolle gegen die Testinstanz von Let's Encrypt zu testen. - ler53_aws_access_key - der Zugangsschlüssel zu einem AWS-Benutzer, der berechtigt ist, Datensätze zur Domain, für die das SSL-Zertifikat erstellt wird, hinzuzufügen. Wenn nicht angegeben, ermittelt das AWS SDK den Zugangsschlüssel.
- ler53_aws_secret_key - der geheime Schlüssel zu einem AWS-Benutzer, der berechtigt ist, Datensätze zur Domain, für die das SSL-Zertifikat erstellt wird, hinzuzufügen. Wenn nicht angegeben, ermittelt das AWS SDK den geheimen Schlüssel.
Beispiel-Playbook
- name: Generieren Sie ein SSL-Zertifikat für 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
Lizenz
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