Set-OPS-Public/roles/serveur_step_ca/files/README-cle-smallstep.md

52 lines
2.3 KiB
Markdown
Raw Normal View History

step-ca : la cle de signature versionnee — plus aucun appel sortant pour l obtenir Le deploiement de Chezlepro depuis son propre runner a franchi le socle et le durcissement sur les quinze machines, et s est arrete sur une seule : infra-pki-01 : Echec temporaire dans la resolution du nom url: https://packages.smallstep.com/keys/apt/repo-signing-key.gpg UN TENANT N A PAS DE DNS SORTANT, ET C EST VOULU. Il resout chez lui, sa requete ne traverse jamais la frontiere. apt s en sort par le mandataire du cache, qui resout a sa place ; get_url n a pas de mandataire. Mesure sur la machine : DNS bloque, 443 sortant OK par adresse, apt via le cache OK. Les cinq reprises du role ne pouvaient rien : elles etaient ecrites pour un serveur INTERMITTENT (2026-08-23), pas pour une resolution fermee. Une reprise ne repare que ce qui est passager. UNE DETTE NOMMEE, APPELEE. client_artefacts le disait : les depots tiers en HTTPS vont en direct, la seconde voie est propre et RESTE A FAIRE. Elle a ete appelee le jour ou un ecosysteme s est reconstruit derriere une frontiere qui fait son travail. La cle est versionnee, avec son empreinte et sa procedure de rafraichissement. Meme idiome que les collections et les roues : le depot porte, la cible n ouvre rien. C est ce qui rend une lignee reproductible SANS INTERNET. Cout ecrit : une rotation amont n est plus recuperee toute seule, mais elle ne passe pas inapercue — apt refuse alors le depot, bruyamment. TROUVE EN LA RECUPERANT : l URL publique REDIRIGE vers pkgs.infra.smallstep.com. Sans suivre les redirections on obtient un fichier VIDE, et curl -f sans -L sort en succes. La procedure le dit, parce que ce piege ne se voit qu au deploiement suivant. Le correctif du pare-feu a tenu : plus une seule suspension, quinze machines a ok=66 et 0 unreachable. make verifier : vert. make prouver : CONFORME, 55 OK, 0 echec, 0 saute. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-08-30 12:13:39 -04:00
# La clé de signature du dépôt Smallstep — versionnée, et pourquoi
```
pub rsa2048 2021-05-04 [SC]
35BA A0B3 3E9E B396 F59C A838 C0BA 5CE6 DC63 15A3
uid Artifact Registry Repository Signer <artifact-registry-repository-signer@google.com>
```
## Pourquoi elle est ici et non téléchargée
**Un tenant n'a pas de DNS sortant, et c'est voulu** — il résout chez lui, sa requête ne
traverse jamais la frontière. `apt` s'en sort par le mandataire du cache, qui résout à sa
place ; `get_url` n'a pas de mandataire.
Mesuré le 2026-08-30 sur `infra-pki-01`, première machine à porter l'autorité de
certification de Chezlepro :
```
Request failed: <urlopen error [Errno -3] Échec temporaire dans la résolution du nom>
url: https://packages.smallstep.com/keys/apt/repo-signing-key.gpg
```
La dette était déjà nommée dans `roles/client_artefacts/defaults/main.yml` : *« les dépôts
tiers en HTTPS continuent d'aller en direct […] la seconde voie est propre et reste à
faire »*. Elle a été appelée le jour où un écosystème s'est reconstruit derrière une
frontière qui fait son travail.
**Ce que ça achète : une lignée qui se reproduit sans Internet.** C'est le même principe
que les collections Ansible et les roues Python — le contrôleur récupère une fois, le
dépôt porte, la cible n'ouvre rien.
## Ce que ça coûte, et qu'il faut savoir
Cette clé **expirera ou tournera** un jour. Le dépôt apt échouera alors bruyamment, à la
vérification de signature — un échec clair, pas un silence. C'est le bon sens de la panne :
mieux vaut un refus lisible qu'un téléchargement qui réussit depuis n'importe où.
## La remettre à jour
Depuis une machine qui a le DNS (le poste de l'exploitant), **et en suivant les
redirections** — l'URL publique renvoie vers `pkgs.infra.smallstep.com`, et sans `-L` on
récupère un fichier VIDE que rien ne signale :
```sh
curl -fsSL https://packages.smallstep.com/keys/apt/repo-signing-key.gpg \
-o roles/serveur_step_ca/files/smallstep-repo-signing-key.asc
gpg --show-keys --with-fingerprint roles/serveur_step_ca/files/smallstep-repo-signing-key.asc
```
Comparer l'empreinte à celle du haut de ce fichier avant de committer. Une clé qu'on
remplace sans regarder son empreinte n'est plus une clé, c'est un fichier.