L-P.simp_le

ansible-role-simp_le

Installez simp_le, générez des certificats et renouvelez-les automatiquement sur des serveurs Debian/Ubuntu.

Le renouvellement sera tenté tous les jours via une tâche cron exécutée par l'utilisateur Ansible distant.

Voir le rôle sur Ansible Galaxy : L-P.simp_le

Remarque : J'ai commencé à utiliser acmetool et je vous recommande de faire de même pour tout nouveau serveur exécutant Ubuntu ≥ 16.04.

Variables requises

Une liste des hôtes virtuels pour lesquels nous allons générer des certificats :

simp_le_vhosts:
  - domains: ["www.example.com", "example.com"]
    root: "/chemin/vers/challenges" # accessible via HTTP
    output: "/chemin/vers/le/repertoire/de/sortie" # où écrire les certificats

Une adresse e-mail qu'utilisera LetsEncrypt pour vous identifier et envoyer des notifications de renouvellement :

simp_le_email: "[email protected]"

Il y a trois clés optionnelles que vous pouvez définir sur les hôtes :

  • user et group pour spécifier qui possédera les clés, challenges et leur répertoire parent. Le propriétaire par défaut est www-data:www-data.
  • extra_args pour passer des arguments supplémentaires à simp_le, cela peut être utilisé pour utiliser le serveur de staging de LetsEncrypt ou pour dire à simp_le de réutiliser la paire de clés lors du renouvellement du certificat. Cela est utile si vous utilisez des enregistrements TLSA, vous pouvez alors utiliser le type de sélecteur 1 (SubjectPublicKeyInfo) et votre enregistrement TLSA ne nécessitera pas de changement lorsque le certificat sera renouvelé.
  • update_action, une commande à exécuter lors du renouvellement d'un certificat, par exemple systemctl restart apache2.

Exemple :

simp_le_vhosts:
  - domains: ["smtp.example.com", "mail.example.com"]
    root: "/chemin/vers/challenges"
    output: "/chemin/vers/le/repertoire/de/sortie"
    user: "Debian-exim"
    group: "Debian-exim"
    extra_args: "--reuse_key --server https://acme-staging.api.letsencrypt.org/directory"
    update_action: "/bin/systemctl restart exim4"

Voir defaults/main.yml pour plus de configurations.

Configuration du serveur

Votre serveur doit servir les fichiers de challenge via HTTP. Voici un exemple de configuration que vous pouvez utiliser pour nginx qui redirigera chaque requête HTTP vers HTTPS, sauf pour les challenges :

location /.well-known/acme-challenge/ {
    alias /var/www/challenges/.well-known/acme-challenge/;
    try_files $uri @forward_https;
}

location @forward_https {
    return 301 https://example.com$request_uri;
}

location / {
    return 301 https://example.com$request_uri;
}

Exemple de playbook

- hosts: all
  roles:
    - {role: "L-P.simp_le", become: no}

Bien que la plupart des opérations se fassent sans sudo, il est tout de même utilisé pour créer les différents répertoires avec les autorisations et propriétaires appropriés.

À propos du projet

simp_le installation and certificate generation for Ubuntu/Debian.

Installer
ansible-galaxy install L-P.simp_le
Licence
mit
Téléchargements
143
Propriétaire