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
etgroup
pour spécifier qui possédera les clés, challenges et leur répertoire parent. Le propriétaire par défaut estwww-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 exemplesystemctl 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.
simp_le installation and certificate generation for Ubuntu/Debian.
ansible-galaxy install L-P.simp_le