Set-OPS-Public/roles/client_pki
Daniel Allaire bbcf087904 Câbler les secrets des rôles à leur variable de voûte (vault_*)
Les rôles à secrets déclaraient serveur_X_password: "" avec la variable
de voûte seulement en commentaire — aucun mapping réel. Remplir la voûte
ne branchait donc rien (secret vide → assertion échoue).

Les 12 secrets des 8 rôles pointent maintenant vers leur source :
  serveur_X_password: "{{ vault_X | default('') }}"
Comportement inchangé si la voûte est vide ; branché dès qu'elle a le
secret. Prouvé : assertion step_ca passe avec vault_step_ca_password.
Chaque instance remplit ses vault_* ; aucun mapping par instance.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 21:29:18 -04:00
..
defaults Câbler les secrets des rôles à leur variable de voûte (vault_*) 2026-07-01 21:29:18 -04:00
handlers Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
tasks Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
templates Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
README.md Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00

client_pki

Intégration cliente PKI / identité machine : chaque hôte fait confiance à l'AC interne (serveur_step_ca), obtient son propre certificat et le renouvelle automatiquement.

Rôle

  • Installe step-cli (dépôt apt Smallstep).
  • Confiance : step ca bootstrap --install → installe la racine de l'AC dans le magasin de confiance système (l'hôte fait confiance au TLS interne réel).
  • Certificat d'hôte : step ca certificate <fqdn> via le provisioner.
  • Renouvellement automatique : unités systemd officielles cert-renewer@.{service,timer} (vérifie/renouvelle toutes les 15 min, recharge le service consommateur s'il existe).

« Chaque hôte authentifiable »

Après ce rôle, l'hôte possède une identité machine vérifiable : un certificat émis par l'AC interne, renouvelé sans intervention. Les services peuvent l'utiliser pour du TLS / mTLS interne.

Secrets requis (Vault)

client_pki_ca_fingerprint: "{{ vault_step_ca_fingerprint }}"             # empreinte racine de l'AC
client_pki_provisioner_password: "{{ vault_step_ca_provisioner_password }}"  # partage avec serveur_step_ca

L'empreinte racine s'obtient sur l'AC (step certificate fingerprint <root_ca.crt>).

Variables principales

Variable Défaut Rôle
client_pki_ca_url https://infra-pki-01.exemple.internal:8443 URL de l'AC
client_pki_provisioner admin@exemple.internal Provisioner émetteur
client_pki_nom_cert FQDN de l'hôte Nom du certificat

Notes / sécurité

  • Émission via le provisioner JWK (mot de passe partagé) : tout hôte avec ce secret peut émettre des certificats. Acceptable en interne ; pour durcir, basculer vers ACME ou des jetons à usage unique par hôte (phase ultérieure).
  • Pour qu'un service (nginx, keycloak…) recharge automatiquement après renouvellement, nommer son certificat d'après le service (instance cert-renewer@<service>).

Prérequis

  • Dépendance client_pki requiert serveur_step_ca actif (déjà dans docs/dependances-groupes.yml).
  • Réseau vers l'AC (:8443).