From d834ea4955415848569aa13abfcf7e8296f1709a Mon Sep 17 00:00:00 2001 From: Kazeia Team Date: Thu, 11 Jun 2026 08:38:16 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20RELEASE=5FSIGNING=20=C3=A0=20jour=20?= =?UTF-8?q?=E2=80=94=20keystore=20versionn=C3=A9=20dans=20le=20d=C3=A9p?= =?UTF-8?q?=C3=B4t=20priv=C3=A9=20comme=20sauvegarde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- .gitignore | 1 + docs/RELEASE_SIGNING.md | 29 ++++++++++++++++------------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index bf9ccdd..dc69d0d 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ !/.gitignore !/kazeia-android/ !/docs/ +!/keystore/ !/scripts/ !/executorch-custom/ !/executorch-patches/ diff --git a/docs/RELEASE_SIGNING.md b/docs/RELEASE_SIGNING.md index d55a494..8d88145 100644 --- a/docs/RELEASE_SIGNING.md +++ b/docs/RELEASE_SIGNING.md @@ -20,9 +20,12 @@ Empreinte du certificat (référence pour vérifier qu'on signe avec la bonne cl SHA256: 4B:40:8D:9D:40:09:FD:68:F7:FD:5B:E0:BD:64:2B:D3:EE:B8:F8:BD:7A:84:D3:9C:84:90:B8:63:21:AF:E4:90 ``` -Le dossier `keystore/` est **hors git** (le `.gitignore` racine est en liste blanche : tout -ce qui n'est pas explicitement inclus est ignoré). C'est voulu : un keystore + ses mots de -passe ne vont jamais dans un dépôt. +**Le dossier `keystore/` est VERSIONNÉ dans le dépôt git** (décision 2026-06-11 : le dépôt +`git.kazeia.com` est privé, auto-hébergé, équipe restreinte → le git sert de sauvegarde de +la clé). Conséquences à garder en tête : +- **accès au dépôt = capacité de signer des mises à jour Kazeia** ; +- la clé reste dans l'historique git pour toujours ; +- **si le dépôt doit un jour être ouvert/partagé plus largement → rotation de clé AVANT** (§7). ## 2. Comment c'est câblé @@ -68,17 +71,17 @@ vérifient le SHA-256, et proposent l'installation (dialogue système). La clé EST l'identité de l'app. Android n'accepte une mise à jour que si elle est signée par la **même clé** que la version installée. -**À faire immédiatement et à chaque rotation de machine :** -```bash -# Copier le dossier ENTIER (jks + credentials) vers AU MOINS DEUX emplacements hors machine : -tar czf kazeia-keystore-$(date +%Y%m%d).tar.gz -C /opt/Kazeia keystore/ -# → Nextcloud (dossier PRIVÉ, pas le partage soft/), clé USB au coffre, gestionnaire de mots de passe… -``` -Recommandé : déposer l'archive sur `box.kazeia.com` dans un dossier **privé** + une copie -hors-ligne (USB). Vérifier la restauration une fois (`tar xzf` + `keytool -list`). +**Sauvegarde principale : le dépôt git privé** (`keystore/` est versionné, cf §1). Une panne +de la machine de build ne coûte donc plus la clé — tant que `git.kazeia.com` est vivant. -**Sur une nouvelle machine de build** : restaurer `keystore/` dans `/opt/Kazeia/`, -vérifier `chmod 600`, builder — rien d'autre à configurer. +**Recommandé en plus** (le git et la machine de build peuvent partager un même sinistre — +serveur et poste au même endroit) : une copie hors-ligne occasionnelle : +```bash +tar czf kazeia-keystore-$(date +%Y%m%d).tar.gz -C /opt/Kazeia keystore/ # → USB / coffre +``` + +**Sur une nouvelle machine de build** : `git clone` suffit — `keystore/` arrive avec le dépôt. +Vérifier `chmod 600 keystore/credentials.properties`, builder, rien d'autre à configurer. ## 5. Scénarios de panne