Aller au contenu

Changer le secret de l’instance

Remplacer BETTER_AUTH_SECRET sans reconnecter vos banques : la rotation en deux déploiements, ce qui se passe au démarrage, et le cas d’ENCRYPTION_KEY.

La variable BETTER_AUTH_SECRET est le secret de votre instance. Elle signe les sessions de connexion, et la clé qui chiffre les identifiants bancaires et le jeton GitHub de la page Mises à jour en est dérivée (sauf si vous avez défini ENCRYPTION_KEY). Si elle a pu être lue par quelqu’un d’autre (capture d’écran, fichier partagé, ancien prestataire), remplacez-la.

Ne la changez pas d’un coup : les identifiants bancaires chiffrés avec l’ancien secret ne s’ouvriraient plus, et il faudrait reconnecter chaque banque. Kledg sait faire la rotation en deux déploiements.

Ce que vous allez faire

  1. Générer un nouveau secret.
  2. Déployer avec les deux secrets : Kledg chiffre de nouveau ce qui doit l’être.
  3. Déployer avec le seul nouveau secret.

Prérequis

  • L’accès aux variables d’environnement de votre hébergeur : sur Vercel, onglet Settings, Environment Variables du projet ; ailleurs, voir le guide de votre hébergeur (par exemple Docker).
  • Une sauvegarde récente de la base, par précaution.

Étape 1 : générer un nouveau secret

Générez une valeur aléatoire d’au moins 32 caractères, par exemple avec :

openssl rand -base64 32 Générer

Gardez-la dans votre gestionnaire de mots de passe, jamais dans un document partagé.

Étape 2 : déployer avec les deux secrets

  1. Ajoutez la variable BETTER_AUTH_SECRETS (avec un S final) avec la valeur 2:<nouveau secret>.
  2. Laissez l’ancien secret dans BETTER_AUTH_SECRET.
  3. Redéployez.

Au démarrage, Kledg chiffre de nouveau, avec le nouveau secret, les identifiants bancaires et le jeton GitHub chiffrés avec l’ancien. Le journal du serveur indique combien de valeurs ont été traitées. Toutes les sessions se ferment : chacun se reconnecte.

Étape 3 : ne garder que le nouveau secret

Une fois ce démarrage passé :

  1. mettez le nouveau secret dans BETTER_AUTH_SECRET ;
  2. supprimez BETTER_AUTH_SECRETS ;
  3. redéployez.

L’ancien secret ne sert plus à rien : vous pouvez l’effacer de partout.

Avec ENCRYPTION_KEY

Si vous avez défini ENCRYPTION_KEY (64 caractères hexadécimaux), les identifiants bancaires ne dépendent pas du secret : il suffit de remplacer BETTER_AUTH_SECRET et de redéployer. Tout le monde se reconnecte. Ne changez pas ENCRYPTION_KEY elle-même : les identifiants bancaires chiffrés avec elle ne s’ouvriraient plus.

Les erreurs fréquentes

  • Remplacer BETTER_AUTH_SECRET directement, sans passer par BETTER_AUTH_SECRETS : les banques connectées et GitHub doivent alors être reconnectés.
  • Supprimer BETTER_AUTH_SECRETS avant que l’instance ait redémarré avec les deux secrets.
  • Perdre le secret : sans lui, ni les sessions ni les identifiants bancaires ne s’ouvrent. Il n’existe aucun moyen de le retrouver.

Avant de passer à Kledg 0.4

Kledg 0.4 ne lit plus l’ancien format de chiffrement des identifiants bancaires. Avant de l’installer, vérifiez la page Configuration (administrateurs de l’instance) : si elle affiche « Ancien format de chiffrement », redémarrez l’instance, qui chiffre de nouveau ces valeurs, puis vérifiez que le message a disparu. Une valeur qui reste demande de reconnecter la banque concernée, ou GitHub dans Mises à jour.

Pour aller plus loin

Cette documentation aide à comprendre et à utiliser Kledg. Elle ne remplace pas les conseils d’un expert-comptable : en cas de doute sur votre situation, faites-vous accompagner.