thiagoalmeidasa.certbot_route53

Rôle Ansible : Certbot (pour Let's Encrypt)

État de la construction

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 :

  1. Assurez-vous que tous les services écoutant sur les ports 80 et 443 (Apache, Nginx, Varnish, etc.) sont arrêtés.
  2. 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.
  3. 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
  4. Redémarrez tout ce qui écoutait sur les ports 80 et 443 auparavant.
  5. 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 commande certbot.
  6. 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

Installer
ansible-galaxy install thiagoalmeidasa.certbot_route53
Licence
mit
Téléchargements
4.9k
Propriétaire
Linux, open source, containers, docker. Nerd, with a big interest in the philosophical, biological, social, and cultural aspects of human life.