# 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 ` 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) ```yaml 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 `). ## 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@`). ## Prérequis - Dépendance `client_pki requiert serveur_step_ca actif` (déjà dans `docs/dependances-groupes.yml`). - Réseau vers l'AC (`:8443`).