mprahl.lets-encrypt-route-53
lets-encrypt-route-53
Ceci est un rôle Ansible qui automatise la génération de certificats signés par Let's Encrypt avec des défis DNS sur Route 53 d'Amazon (AWS).
Veuillez noter qu'en utilisant ce rôle, openssl
, boto, et pyOpenSSL seront installés. Si vous utilisez CentOS, RHEL, ou Mac OS, le rôle installera pip
, puis boto
et pyOpenSSL
dans un virtualenv Python car les versions empaquetées ne sont pas disponibles ou ne sont pas assez récentes. Veuillez également noter que EPEL est nécessaire sur CentOS et RHEL.
Si vous n'utilisez pas ce rôle sur Debian/Ubuntu, CentOS/Red Hat, Mac OS ou FreeBSD, openssl
, boto
, et pyOpenSSL
doivent être installés manuellement avant d'utiliser ce rôle.
Exigences
Ansible 2.7+ est requis pour ce rôle. Si vous utilisez une version plus ancienne d'Ansible, utilisez la version 4.2.1 de ce rôle. Ce rôle doit également être exécuté par root ou via sudo/devenir.
Étiquettes du Rôle
- install - utilisée pour étiqueter les tâches d'installation des dépendances requises.
- openssl - utilisée pour étiqueter les tâches de génération des clés privées et de CSR.
Variables du Rôle
Faits Définis Par Le Rôle
- ler53_cert_changed - cela est défini sur
True
lorsque le certificat est créé ou renouvelé.
Variables Requises
- ler53_route_53_domain - le domaine Route 53 (AWS) pour lequel le certificat SSL est généré. C'est un paramètre obligatoire, si le paramètre
ler53_route_53_zone_id
n'est pas fourni. - ler53_route_53_zone_id - le zone_id Route 53 (AWS) pour lequel le certificat SSL est généré. C'est un paramètre obligatoire, si le paramètre
ler53_route_53_domain
n'est pas fourni. Utilisez ce paramètre si vous n'avez pas les droits AWS pour effectuer route53:ListHostedZones.
Variables Optionnelles
- ler53_cert_common_name - le nom commun pour le certificat SSL généré. Cela par défaut à la valeur de
ansible_fqdn
. - ler53_cert_sans - une liste de noms alternatifs de sujet DNS (SAN's) du même domaine que spécifié dans
ler53_route_53_domain
à inclure dans le CSR. Veuillez noter qu'un SAN DNS pour la valeur deler53_cert_common_name
est automatiquement ajouté et ne doit pas être ajouté à cette liste. Cette variable n'est pas définie par défaut. - ler53_cert_key_usages - une liste d'utilisations de clé à inclure dans le CSR (Let's Encrypt peut en restreindre certaines). Cela par défaut à
digitalSignature
etkeyEncipherment
. - ler53_key_size - la taille de la clé privée associée au certificat généré. Cela par défaut à
2048
. - ler53_cert_dir - le chemin vers le répertoire pour stocker la clé privée, le CSR et le certificat. Cela par défaut à
/etc/ssl/{{ ler53_cert_common_name }}
. - ler53_key_file_name - le nom de fichier de la clé privée associée au certificat généré. Cela par défaut à
{{ ler53_cert_common_name }}.key
. - ler53_cert_file_name - le nom de fichier du certificat généré. Cela par défaut à
{{ ler53_cert_common_name }}.crt
. - ler53_csr_file_name - le nom de fichier de la demande de signature de certificat (CSR) générée. Cela par défaut à
{{ ler53_cert_common_name }}.csr
. - ler53_intermediate_file_name - le nom de fichier de l'AC intermédiaire téléchargé depuis Let's Encrypt. Cela par défaut à
{{ ler53_cert_common_name }}.intermediate.pem
. - ler53_cert_and_intermediate_file_name - le nom du fichier créé avec le certificat et l'AC intermédiaire concaténés ensemble. Cela par défaut à
{{ ler53_cert_common_name }}.pem
. - ler53_cert_files_mode - le mode/permissions de fichier à forcer sur la clé privée, le CSR, et le certificat. Cela par défaut à
0600
. - ler53_cert_files_owner - le propriétaire du fichier à forcer sur la clé privée, le CSR, et le certificat. Cela par défaut à
root
. - ler53_cert_files_group - le groupe de fichiers à forcer sur la clé privée, le CSR, et le certificat. Cela par défaut à
root
. - ler53_account_email - un e-mail à associer avec votre compte Let's Encrypt. Veuillez consulter le Module Let's Encrypt pour plus d'informations.
- ler53_account_key_size - la taille de la clé de compte Let's Encrypt qui est générée si elle n'est pas présente. Cela par défaut à
2048
. - ler53_account_key_dir - le chemin vers le répertoire pour stocker la clé de compte Let's Encrypt. Cela par défaut à
/etc/ssl/lets_encrypt
. - ler53_account_key_file_name - le nom de fichier de la clé de compte Let's Encrypt. Cela par défaut à
lets_encrypt_account.key
. - ler53_cert_remaining_days_before_renewal - le nombre minimum de jours restants avant le renouvellement du certificat actuel. Cela par défaut à
10
. - ler53_new_cert_when_csr_changes - supprimer le certificat existant lorsque le CSR change. Cela est utile lorsque vous changez le nom commun ou les SANs de votre certificat et que vous souhaitez générer un nouveau certificat sans attendre qu'il expire. Cela par défaut à
false
. - ler53_cert_extended_key_usages - Restrictions supplémentaires (par ex. authentification client, authentification serveur) sur les usages autorisés de la clé publique.
- ler53_service_handlers - Une liste de dictionnaires décrivant les gestionnaires de service à exécuter lorsqu'un certificat est mis à jour au format
{'name': 'httpd', 'state': 'restarted'}
. - ler53_acme_directory - Le répertoire ACME à utiliser. Cela par défaut à
https://acme-v02.api.letsencrypt.org/directory
. Cela peut être utile de le remplacer si vous souhaitez tester ce rôle contre l'instance Let's Encrypt de test. - ler53_aws_access_key - la clé d'accès d'un utilisateur AWS qui est autorisé à ajouter des enregistrements au domaine pour lequel le certificat SSL est généré. Si non spécifié, le SDK AWS déterminera la clé d'accès.
- ler53_aws_secret_key - la clé secrète d'un utilisateur AWS qui est autorisé à ajouter des enregistrements au domaine pour lequel le certificat SSL est généré. Si non spécifié, le SDK AWS déterminera la clé secrète.
Exemple de Playbook
- name: Générer un certificat SSL pour 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
Licence
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