Roles Rôle « Certificates »
22 octobre 2025 à 16:34Ce rôle est chargé de gérer la génération et la régénération des certificats Let’s Encrypt.
Tags internes
- packages : Installation et configuration des packages ;
- certificates : Mise en place de la configuration des certificats ;
Traitements spécifiques du jeu de tâches
Afin de permettre la résolution tardive de l’emplacement d’enregistrement des certificats actuels, le nom de la variable à fournir est différentes de celle attendue.
| Variable côté jeu de tâches | Variable côté rôle |
|---|---|
custom_certificates |
certificates |
En supplément de ces configurations manuelles, les définitions de Virtual Host sont converties en certificats. Ainsi les vhosts peuvent être étendus avec les configurations pour les certificats. Détails de la conversion.
Les profils de fournisseur (certificate_profiles) sont déjà définis.
Type certificate_norep
Modifie le type certificate
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
repository_name |
Chemin | Oui | Nom du certificat dans le dépôt | |
repository_cert_path |
Retiré | Option retirée | ||
repository_key_path |
Retiré | Option retirée | ||
repository_bundle_path |
Retiré | Option retirée |
Variables à fournir
| Variable | Type | Requis | Défaut | Description |
|---|---|---|---|---|
certificates |
Liste d’objets certificate |
Non | Liste vide | Certificats à mettre en place |
certificate_account |
Courriel | Oui | Adresse du compte let’s encrypt | |
certificate_profiles |
Liste d’objets profile |
Non | Profiles des fournisseurs | |
robocert_version |
Version number | Oui | “3.7.0” | Version de dnsrobocert à installer |
robocert_python |
Version number | Oui | “3.7” | Version de python exécutant dnsrobocert |
Type certificate
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
active |
Booléen | Non | Vrai | Active la définition du certificat |
name |
Chaîne | Oui | Nom du certificat | |
domain |
Chaîne | Oui | Nom commun du certificat | |
aliases |
Liste de chaînes | Non | Noms alternatifs du certificat | |
profile |
Identifiant | Oui | Profil DNS du certificat | |
repository_cert_path |
Chemin | Oui | Chemin de dépôt du certificat | |
repository_key_path |
Chemin | Oui | Chemin de dépôt de la clé privée | |
repository_bundle_path |
Chemin | Oui | Chemin de dépôt des certificats intermédiaires | |
install_cert_path |
Chemin | Non | Chemins, séparés par des deux-points, où installer le certificat | |
install_key_path |
Chemin | Non | Chemins, séparés par des deux-points, où installer la clé privée | |
install_bundle_path |
Chemin | Non | Chemins, séparés par des deux-points, où installer les certificats intermédiaires | |
install_cert_with_bundle |
Non | Le certificat installé doit inclure les certificats intermédiaires dans le fichier | ||
apply_cmd |
Chaîne | Non | Commande(s) à exécuter pour appliquer le certificat au service |
Une commande spéciale propagate pour apply_cmd est disponible. Cette commande permet de propager
le certificat sur un autre serveur par SSH. Cette commande prend en paramètres :
- L’utilisateur devant exécuter la commande SSH ;
- L’adresse d’un serveur SSH auquel se connecter, avec le nom d’utilisateur indiqué ;
- Le nom du script sur le serveur distant à exécuter ;
La connexion SSH doit être validée au préalable pour nécessiter aucune interaction. En entrée standard du script exécuté, est passé une archive contenant les fichiers suivants :
.env: Informations sur l’opération. Fourni les variables d’environnement :cert_name: Nom du certificat ;apply_cmd: Commandes de base à exécuter ;
cert.pem: Le certificat ;privkey.pem: La clé privée ;chain.pem: Les certificats intermédiaires ;
Pour aider au calcul de la commande de base à exécuter par la fonction, le marqueur ;:;:; doit être présent.
Type profile
Voir Section profile de dnsrobocert
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
name |
Identifiant | Oui | Identifiant du profil | |
provider |
Identifiant | Oui | Identifiant du fournisseur | |
provider_options |
Objet | Oui | Options du fournisseur comme requis par lexicon | |
sleep_time |
Entier | Non | 30 | Durée d’attente de la mise à jour de l’enregistrement |
max_checks |
Entier | Non | 0 | Nombre maximum de vérifications |
delegated_subdomain |
FQDN | Faux | Explicite la délégation du domaine | |
ttl |
Entier | Oui | Durée de vie de l’enregistrement |
Conversion Vhost en Certificat
Détail de la conversion des champs de Virtual Host en champs de certificat.
Les types de base sont définis dans BaseVhosts.
Conversion vhost
Type vhost_base vers certificate_norep.
| Propriété Certificat | Type source | Source | Détails |
|---|---|---|---|
active |
Propriété Virtual Host et Calculé | certbot_managed si vhost_name et vhost_activate_https définis sinon Faux |
Nouvelle propriété équivalente |
name |
Propriété Virtual Host et Calculé | certbot_name si défini sinon vhost_root_name puis vhost_name |
Nouvelle propriété équivalente |
domain |
Propriété Virtual Host | vhost_name |
|
aliases |
Propriété Virtual Host | vhost_aliases |
|
profile |
Propriété Virtual Host | certbot_profile |
Nouvelle propriété équivalente |
repository_name |
Propriété Virtual Host et Calculé | certbot_repository_name si défini sinon vhost_root_name puis vhost_name renversé |
Nouvelle propriété équivalente |
install_cert_path |
Calculé | vhosts_base_dir + vhost_name + “conf/ssl/” + vhost_name + “.crt” |
|
install_key_path |
Calculé | vhosts_base_dir + vhost_name + “conf/ssl/” + vhost_name + “.key” |
|
install_bundle_path |
Calculé | vhosts_base_dir + vhost_name + “conf/ssl/” + vhost_name + “-bundle.pem” |
|
install_cert_with_bundle |
Fixé | Faux | |
apply_cmd |
Propriété Virtual Host et Calculé | “service apache2 reload” + (’;:;:;’ + certbot_command si défini) |
Nouvelle propriété équivalente |
La commande exécutée par défaut est de recharger le service Web. Des commandes supplémentaires peuvent
être ajoutées grâce à certbot_command. Le marqueur de séparation ;:;:; est automatiquement placé.
L’environnement généré par le script est disponible pour la commande.
Finalisation conversion
Type certificate_norep vers certificate.
| Propriété Certificat | Type source | Source | Détails |
|---|---|---|---|
| Retiré | repository_name |
||
repository_cert_path |
Calculé | certificate_repository.certs + repository_name + “.pem” |
|
repository_key_path |
Calculé | certificate_repository.private_keys + repository_name + “.pem” |
|
repository_bundle_path |
Calculé | certificate_repository.bundles + “letsencrypt.ca.pem” |
Autres rôles
Les vhosts mis en place par les rôles suivants sont aussi pris en compte :
| Rôle | vhost_name |
vhost_activate_https |
certbot_name |
certbot_managed |
certbot_profile |
certbot_repository_name |
|---|---|---|---|---|---|---|
| GitLab | gitlab.vhost.name |
gitlab.vhost.secure |
gitlab.vhost.certbot_name |
gitlab.vhost.certbot_managed |
gitlab.vhost.certbot_profile |
gitlab.vhost.certbot_repository_name |
| GitLab Omnibus | gitlab_omnibus.vhost.name |
gitlab_omnibus.vhost.secure |
gitlab_omnibus.vhost.certbot_name |
gitlab_omnibus.vhost.certbot_managed |
gitlab_omnibus.vhost.certbot_profile |
gitlab_omnibus.vhost.certbot_repository_name |
| Redmine | redmine.vhost |
True | redmine.certbot_name |
redmine.certbot_managed |
redmine.certbot_profile |
redmine.certbot_repository_name |
| Subversion | subversion.admin.vhost |
True | subversion.admin.certbot_name |
subversion.admin.certbot_managed |
subversion.admin.certbot_profile |
subversion.admin.certbot_repository_name |
subversion.repositories.vhost |
True | subversion.repositories.certbot_name |
subversion.repositories.certbot_managed |
subversion.repositories.certbot_profile |
subversion.repositories.certbot_repository_name |