thiagoalmeidasa.certbot_route53
Rôle Ansible : Certbot (pour Let's Encrypt)
Installe et configure Certbot (pour Let's Encrypt).
Exigences
Si vous installez à partir de la source, Git est nécessaire. Vous pouvez installer Git en utilisant le rôle geerlingguy.git
.
En général, l'installation à partir de la source (voir la section Installation à partir de Git
) offre une meilleure expérience avec Certbot et Let's Encrypt, surtout si vous utilisez une version ancienne de votre système d'exploitation.
Variables du rôle
La variable certbot_install_from_source
contrôle si Certbot doit être installé à partir de Git ou de la gestion de paquets. Cette dernière option est la valeur par défaut, donc la variable est initialement définie sur non
.
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"
Par défaut, ce rôle configure une tâche cron pour s'exécuter sous le compte utilisateur fourni à l'heure et à la minute données, chaque jour. Les valeurs par défaut exécutent certbot renew
(ou certbot-auto renew
) via cron tous les jours à 03:30:00 par l'utilisateur que vous utilisez dans votre playbook Ansible. Il est recommandé de définir un utilisateur/personne/heure personnalisés afin que le renouvellement se fasse pendant une période de faible activité et soit réalisé par un compte utilisateur non-root.
Génération automatique de certificats
Actuellement, il existe une méthode intégrée pour générer de nouveaux certificats en utilisant ce rôle : standalone
. D'autres méthodes (par exemple, en utilisant nginx ou apache et un répertoire web) pourraient être ajoutées à l'avenir.
Pour un exemple complet : consultez le playbook de test entièrement fonctionnel dans molecule/default/playbook-standalone-nginx-aws.yml.
certbot_create_if_missing: false
certbot_create_method: certonly
Définissez certbot_create_if_missing
sur oui
ou True
pour permettre à ce rôle de générer des certificats. Définissez la méthode utilisée pour générer des certificats avec la variable certbot_create_method
. Les valeurs actuellement autorisées incluent : certonly
.
certbot_admin_email: email@example.com
L'adresse e-mail utilisée pour accepter les TOS de Let's Encrypt et s'abonner aux notifications liées aux certificats. Cela devrait être personnalisé et réglé sur une adresse e-mail que vous ou votre organisation surveillez régulièrement.
certbot_certs: []
# - email: [email protected]
# domains:
# - example1.com
# - example2.com
# - domains:
# - example3.com
Une liste de domaines (et d'autres données) pour lesquels des certificats doivent être générés. Vous pouvez ajouter une clé email
à tout élément de la liste pour remplacer 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(',') }}"
La certbot_create_command
définit la commande utilisée pour générer le certificat.
Installation à partir de la source Git
Vous pouvez installer Certbot à partir de son dépôt source Git si vous le souhaitez. Cela peut être utile dans plusieurs cas, mais surtout lorsque les anciennes distributions n'ont pas de paquets Certbot disponibles (par exemple, CentOS < 7, Ubuntu < 16.10 et Debian < 8).
certbot_install_from_source: false
certbot_repo: https://github.com/certbot/certbot.git
certbot_version: master
certbot_keep_updated: true
Options du dépôt Git Certbot. Pour installer à partir de la source, définissez certbot_install_from_source
sur oui
. Cela clone le certbot_repo
configuré, en respectant le paramètre certbot_version
. Si certbot_keep_updated
est défini sur oui
, le dépôt est mis à jour chaque fois que ce rôle est exécuté.
certbot_dir: /opt/certbot
Le répertoire dans lequel Certbot sera cloné.
Certificats wildcard
Let's Encrypt prend en charge la génération de certificats wildcard, mais le processus pour les générer et les utiliser est légèrement plus complexe. Consultez les commentaires dans cette demande de tirage pour un exemple de la façon d'utiliser ce rôle pour maintenir des certificats wildcard.
Michael Porter a également un guide sur Comment créer un certificat wildcard Let’s Encrypt avec Ansible, spécifiquement avec Cloudflare.
Dépendances
Aucune.
Exemple de Playbook
- hosts: servers
vars:
certbot_auto_renew_user: votre_nom_utilisateur_ici
certbot_auto_renew_minute: "20"
certbot_auto_renew_hour: "5"
roles:
- thiagoalmeidasa.certbot_route53
Consultez d'autres exemples dans le répertoire tests/
.
Création manuelle de certificats avec certbot
Remarque : Vous pouvez faire en sorte que ce rôle génère automatiquement des certificats ; consultez la documentation sur "Génération automatique de certificats" ci-dessus.
Vous pouvez créer manuellement des certificats en utilisant le script certbot
(ou certbot-auto
) (utilisez letsencrypt
sur Ubuntu 16.04, ou utilisez /opt/certbot/certbot-auto
si vous installez à partir de la source/Git). Voici quelques commandes d'exemple pour configurer des certificats avec Certbot :
# Ajouter automatiquement des certificats pour tous les hôtes virtuels Apache (à utiliser avec précaution !).
certbot --apache
# Générer des certificats, mais ne pas modifier la configuration d'Apache (plus sûr).
certbot --apache certonly
Si vous souhaitez automatiser complètement le processus d'ajout d'un nouveau certificat, mais que vous ne voulez pas utiliser la fonction intégrée de ce rôle, vous pouvez le faire en utilisant les options de ligne de commande pour vous enregistrer, accepter les conditions de service, puis générer un certificat en utilisant le serveur autonome :
- Assurez-vous que tous les services écoutant sur les ports 80 et 443 (Apache, Nginx, Varnish, etc.) sont arrêtés.
- Inscrivez-vous avec quelque chose comme
certbot register --agree-tos --email [[email protected]]
- Remarque : Vous n'aurez pas besoin de faire cette étape à l'avenir, lors de la génération d'autres certificats sur le même serveur. - Générez un certificat pour un domaine dont le DNS pointe vers ce serveur :
certbot certonly --noninteractive --standalone -d example.com -d www.example.com
- Redémarrez tout ce qui écoutait sur les ports 80 et 443 auparavant.
- Mettez à jour la configuration TLS de l'hôte virtuel de votre serveur web pour pointer vers le nouveau certificat (
fullchain.pem
) et la clé privée (privkey.pem
) que Certbot vient de générer pour le domaine que vous avez passé dans la commandecertbot
. - Rechargez ou redémarrez votre serveur web afin qu'il utilise la nouvelle configuration d'hôte virtuel HTTPS.
Renouvellement automatique des certificats Certbot
Par défaut, ce rôle ajoute une tâche cron qui renouvellera tous les certificats installés une fois par jour à l'heure et à la minute de votre choix.
Vous pouvez tester le renouvellement automatique (sans renouveler réellement le certificat) avec la commande :
/opt/certbot/certbot-auto renew --dry-run
Consultez la documentation complète et les options sur le site de Certbot.
Licence
MIT / BSD
Installs and configures Certbot (for Let's Encrypt).
ansible-galaxy install thiagoalmeidasa.certbot_route53