ThingWorx Flow > Installation et configuration > Configuration de ThingWorx Flow > Rotation de la clé de chiffrement ThingWorx Flow
Rotation de la clé de chiffrement ThingWorx Flow
Les données sensibles, notamment les autorisations et les actions de processus, sont chiffrées dans ThingWorx Flow. Vous pouvez modifier la clé de chiffrement utilisée pour chiffrer les données sensibles sans perdre les données précédemment chiffrées. Les sections suivantes fournissent des informations sur la définition d'une nouvelle clé de chiffrement dans les environnements suivants :
Sur site
1. Générez une nouvelle paire de clés avec le nom de la clé et la clé secrète.
Vous pouvez définir le nom de la clé sur n'importe quelle valeur.
La longueur de la clé secrète doit être un multiple de 16. Vous pouvez utiliser le générateur de GUID pour créer la clé secrète. Le GUID ne doit contenir aucun trait d'union (-).
2. La valeur du paramètre secret est utilisée pour déchiffrer keyfile-key. Pour obtenir la valeur du paramètre secret, démarrez l'invite de commande en tant qu'administrateur sur la machine où vous avez installé ThingWorx Flow, puis exécutez les commandes suivantes :
a. pm2 ls
Notez la valeur de l'ID de n'importe quel service ThingWorx Flow.
b. pm2 env <id>
, où <id> correspond à l'ID d'un service ThingWorx Flow. Par exemple : ID du service flow-api.
c. Copiez la valeur de la variable CONFIG_IMAGE. Il s'agit de la valeur du paramètre secret. Il s'agit de la valeur du paramètre secret que vous devez fournir à l'étape 3.
3. Exécutez les commandes suivantes pour déchiffrer le fichier de clé :
a. Accédez à <Emplacement_installation_ThingWorx_Flow>.
b. Exécutez les commandes suivantes :
cd <Emplacement_installation_ThingWorx_Flow>\cryptography\tw-security-common-nodejs
Windows : npm link/Linux : sudo npm link
c. Exécutez la commande suivante pour déchiffrer keyfile-key dans un fichier temporaire :
PtcOrchKeyFileTool --secret <valeur CONFIG_IMAGE> --keyfile-location <Emplacement_installation_ThingWorx_Flow>\misc\keyfile-key --plaintext <Emplacement_installation_ThingWorx_Flow>\cryptography\keys.dec --encrypted <Emplacement_installation_ThingWorx_Flow>\cryptography\keys.enc decrypt
Cette commande crée un nouveau fichier keys.dec déchiffré dans le dossier <Emplacement_installation_ThingWorx_Flow>\cryptography\.
d. Mettez à jour le fichier keys.dec pour ajouter la nouvelle clé.
Par exemple : "newkey": "0EE0D33AC67E4389AB2B46123729B875",
e. Effectuez une sauvegarde du fichier <Emplacement_installation_ThingWorx_Flow>\cryptography\keys.enc.
f. Supprimez le fichier <Emplacement_installation_ThingWorx_Flow>\cryptography\keys.enc.
g. Exécutez la commande suivante pour créer le nouveau fichier keys.enc chiffré :
PtcOrchKeyFileTool --secret <valeur CONFIG_IMAGE> --keyfile-location <Emplacement_installation_ThingWorx_Flow>\misc\keyfile-key --plaintext <Emplacement_installation_ThingWorx_Flow>\cryptography\keys.dec --encrypted <Emplacement_installation_ThingWorx_Flow>\cryptography\keys.enc encrypt
h. Supprimez le fichier keys.dec déchiffré.
4. Dans les fichiers suivants, définissez la valeur de la propriété activeKeyName sur le nouveau nom de clé pour configurer la nouvelle clé de chiffrement :
<Emplacement_installation_ThingWorx_Flow>\modules\engine\config\security-common\config.json
<Emplacement_installation_ThingWorx_Flow>\modules\exchange\config\security-common\config.json
<Emplacement_installation_ThingWorx_Flow>\modules\lookup\config\security-common\config.json
<Emplacement_installation_ThingWorx_Flow>\modules\oauth\config\security-common\config.json
<Emplacement_installation_ThingWorx_Flow>\modules\trigger\config\security-common\config.json
<Emplacement_installation_ThingWorx_Flow>\modules\ux\config\security-common\config.json
Par exemple, pour le nom de clé, newkey, définissez les éléments suivants :
{"
activeKeyName": "newkey"
}
5. Redémarrez les services ThingWorx Flow.
Dans le Cloud ou un Cloud privé virtuel
1. Générez une nouvelle paire de clés avec le nom de la clé et la clé secrète.
Vous pouvez définir le nom de la clé sur n'importe quelle valeur.
La longueur de la clé secrète doit être un multiple de 16. Vous pouvez utiliser le générateur de GUID pour créer la clé secrète. Le GUID ne doit contenir aucun trait d'union (-).
2. Le déploiement ThingWorx Flow inclut un fichier de secret de clé intitulé <nom version>-keys. Ce fichier de secret de clé contient la clé de chiffrement active et les anciennes clés de chiffrement au format JSON stockées dans oldEncKeys.json. Pour trouver le fichier de secret de clé approprié, exécutez la commande suivante :
kubectl get secrets
3. Exécutez la commande suivante pour ouvrir le fichier de secret à des fins de modification :
kubectl edit secret <release name>-keys
Le fichier de secret contient les entrées suivantes :
ENCRYPTION_KEY:QVNERkdISktMMTIzNDU2Nw==
ACTIVE_ENCRYPTION_KEY_NAME:bXlrZXk=
oldEncKeys.json:e30=
4. Base64 décode les valeurs actuelles de ENCRYPTION_KEY, ACTIVE_ENCRYPTION_KEY_NAME et oldEncKeys.json. Dans cet exemple :
Pour ENCRYPTION_KEY, le décodage de la valeur QVNERkdISktMMTIzNDU2Nw== donne ASDFGHJKL1234567.
Pour ACTIVE_ENCRYPTION_KEY_NAME, le décodage de la valeur bXlrZXk= donne mykey.
Pour oldEncKeys.json, le décodage de la valeur e30= donne {}.
5. Base64 code les nouvelles valeurs de ENCRYPTION_KEY,, ACTIVE_ENCRYPTION_KEY_NAME et oldEncKeys.json. Dans cet exemple :
Pour ENCRYPTION_KEY, le codage de la valeur 0EE0D33AC67E4389AB2B46123729B875 donne MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU=.
Pour ACTIVE_ENCRYPTION_KEY_NAME, le codage de la valeur newkey donne bmV3a2V5.
Pour oldEncKeys.json, le codage de l'ancienne paire de clés au format JSON {"mykey":"ASDFGHJKL1234567"} donne eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9.
6. Entrez les nouvelles valeurs dans le fichier de secret de clé, puis enregistrez-le.
ENCRYPTION_KEY:MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU=
ACTIVE_ENCRYPTION_KEY_NAME:bmV3a2V5
oldEncKeys.json:eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9
7. Redémarrez tous les conteneurs ThingWorx Flow.
Est-ce que cela a été utile ?