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
51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
# 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.
|