Roles Rôle « Certificates »
20 septembre 2026 à 13:42Ce 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 | Type jeu de tâches |
|---|---|---|
custom_certificates |
certificates_items |
Liste d’objets certificate_norep |
certificate_account |
certificates_account |
Identique rôle |
certificate_profiles |
certificates_profiles |
Identique rôle |
robocert_version |
certificates_robocert_version |
Identique rôle |
robocert_python |
certificates_robocert_python |
Identique rôle |
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_items |
Liste d’objets certificate |
Non | Liste vide | Certificats à mettre en place |
certificates_account |
Courriel | Oui | Adresse du compte let’s encrypt | |
certificates_profiles |
Liste d’objets profile |
Non | Profiles des fournisseurs | |
certificates_robocert_version |
Version number | Oui | “3.7.0” | Version de dnsrobocert à installer |
certificates_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 |
Objet repository |
Oui | Configuration de dépôt commun | |
install |
Liste d’objets install |
Non | Vide | Configuration de déployement du certificat |
Type repository
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
cert_path |
Chemin | Oui | Chemin de dépôt du certificat | |
key_path |
Chemin | Oui | Chemin de dépôt de la clé privée | |
bundle_path |
Chemin | Oui | Chemin de dépôt des certificats intermédiaires |
Type install
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
cert_path |
Chemin | Oui | Chemin où déployer le certificat | |
key_path |
Chemin | Oui | Chemin où déployer la clé privée | |
bundle_path |
Chemin | Non | Chemin où déployer les certificats intermédiaires | |
cert_with_bundle |
Booléen | Non | Inclure les certificats intermédiaires dans le fichier du certificat | |
commands |
Liste de liste de chaînes | Non | Commande(s) à exécuter pour appliquer le certificat au service |
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 |
Options du fournisseur tsig
Attention : Déprécié
| Variable | Type | Description |
|---|---|---|
server |
FQDN | Adresse du serveur de mise à jour |
name |
Identifiant | Nom du compte |
hmac |
Secret | Secret de signature |
Variables requises pour la conversion depuis les autres rôles
Ces éléments sont applicables à toutes les conversions.
La variable externe common_certificates_repository est définie dans Common.
Conversion Vhost en Certificat
Détail de la conversion des champs de Virtual Host en champs de certificat.
Les variables externes vhostset vhosts_base_dir sont définies 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[0].cert_path |
Calculé | vhosts_base_dir + vhost_name + “conf/ssl/” + vhost_name + “.crt” |
|
install[0].key_path |
Calculé | vhosts_base_dir + vhost_name + “conf/ssl/” + vhost_name + “.key” |
|
install[0].bundle_path |
Calculé | vhosts_base_dir + vhost_name + “conf/ssl/” + vhost_name + “-bundle.pem” |
|
install[0].cert_with_bundle |
Fixé | Faux | |
install[0].commands |
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 format est une liste de commandes sous forme de liste de liste de chaînes.
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é | common_certificates_repository.certs + repository_name + “.pem” |
|
repository.key_path |
Calculé | common_certificates_repository.private_keys + repository_name + “.pem” |
|
repository.bundle_path |
Calculé | common_certificates_repository.bundles + repository_name + “-bundle.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 |
|---|---|---|---|---|---|---|
| MailServer | mailserver_admin.hostname |
mailserver_mode == ‘server’ |
mailserver_admin.certbot_name |
mailserver_admin.certbot_managed |
mailserver_admin.certbot_profile |
mailserver_admin.certbot_repository_name |
mailserver_webmail.hostname |
mailserver_mode == ‘server’ |
mailserver_webmail.certbot_name |
mailserver_webmail.certbot_managed |
mailserver_webmail.certbot_profile |
mailserver_webmail.certbot_repository_name |
|
mailserver_rspamd.hostname |
mailserver_mode == ‘server’ |
mailserver_rspamd.certbot_name |
mailserver_rspamd.certbot_managed |
mailserver_rspamd.certbot_profile |
mailserver_rspamd.certbot_repository_name |
|
| GitLab Docker | gitlab_docker.vhost.name |
gitlab_docker.vhost.secure |
gitlab_docker.vhost.certbot_name |
gitlab_docker.vhost.certbot_managed |
gitlab_docker.vhost.certbot_profile |
gitlab_docker.vhost.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 |