ThingWorx Flow > Instalación y configuración > Configuración de ThingWorx Flow > Rotación de la clave de codificación de ThingWorx Flow
Rotación de la clave de codificación de ThingWorx Flow
Los datos confidenciales que incluyen las autorizaciones y las acciones de flujo de trabajo se cifran en ThingWorx Flow. Se puede cambiar la clave de cifrado utilizada para cifrar datos confidenciales sin perder datos cifrados anteriormente. En las siguientes secciones se proporciona información sobre la configuración de una nueva clave de cifrado en los siguientes entornos:
Localmente
1. Genere un nuevo par de claves con el nombre de clave y el secreto.
El nombre de clave se puede definir en cualquier valor.
La longitud del secreto debe ser un múltiplo de 16. Se puede utilizar el generador de GUID para crear el secreto. El GUID no debe contener guiones (-).
2. El valor del parámetro secret se utiliza para descifrar el fichero keyfile-key. Para obtener el valor del parámetro secret, inicie el símbolo del sistema como administrador en el equipo en el que se ha instalado ThingWorx Flow y ejecute los siguientes comandos:
a. pm2 ls
Tome nota del valor del ID de cualquier servicio de ThingWorx Flow.
b. pm2 env <ID>,
donde <ID> es el ID de cualquier servicio de ThingWorx Flow. Por ejemplo: el ID de servicio flow-api.
c. Copie el valor de la variable CONFIG_IMAGE. Este es el valor del parámetro secret. Este es el valor del parámetro secret que se debe proporcionar en el paso 3.
3. Ejecute los siguientes comandos para descifrar el fichero de claves:
a. Vaya a <Ubicación_de_instalación_de_ThingWorx_Flow>.
b. Ejecute los siguientes comandos:
cd <Ubicación_de_instalación_de_ThingWorx_Flow>\cryptography\tw-security-common-nodejs
Windows: npm link o Linux: sudo npm link
c. Ejecute el siguiente comando para descifrar el fichero keyfile-key en un fichero temporal:
PtcOrchKeyFileTool --secret <valor de CONFIG_IMAGE> --keyfile-location <Ubicación_de_instalación_de_ThingWorx_Flow>\misc\keyfile-key --plaintext <Ubicación_de_instalación_de_ThingWorx_Flow>\cryptography\keys.dec --encrypted <Ubicación_de_instalación_de_ThingWorx_Flow>\cryptography\keys.enc decrypt
Con este comando, se crea un nuevo fichero keys.dec descifrado en la carpeta <Ubicación_de_instalación_de_ThingWorx Flow>\cryptography\.
d. Actualice el fichero keys.dec para añadir la nueva clave.
Por ejemplo:"newkey": "0EE0D33AC67E4389AB2B46123729B875",
e. Realice una copia de seguridad del fichero <Ubicación_de_instalación_de_ThingWorx_Flow>\cryptography\keys.enc.
f. Borre el fichero <Ubicación_de_instalación_de_ThingWorx_Flow>\cryptography\keys.enc.
g. Ejecute el siguiente comando para crear el nuevo fichero keys.enc cifrado:
PtcOrchKeyFileTool --secret <valor de CONFIG_IMAGE> --keyfile-location <Ubicación_de_instalación_de_ThingWorx_Flow>\misc\keyfile-key --plaintext <Ubicación_de_instalación_de_ThingWorx_Flow>\cryptography\keys.dec --encrypted <Ubicación_de_instalación_de_ThingWorx_Flow>\cryptography\keys.enc encrypt
h. Borre el fichero keys.dec descifrado.
4. En los siguientes ficheros, defina el valor de la propiedad activeKeyName en el nuevo nombre de clave para configurar la nueva clave de cifrado:
<Ubicación_de_instalación_de_ThingWorx_Flow>\modules\engine\config\security-common\config.JSON
<Ubicación_de_instalación_de_ThingWorx_Flow>\modules\exchange\config\security-common\config.JSON
<Ubicación_de_instalación_de_ThingWorx_Flow>\modules\lookup\config\security-common\config.JSON
<Ubicación_de_instalación_de_ThingWorx_Flow>\modules\oauth\config\security-common\config.JSON
<Ubicación_de_instalación_de_ThingWorx_Flow>\modules\trigger\config\security-common\config.JSON
<Ubicación_de_instalación_de_ThingWorx_Flow>\modules\ux\config\security-common\config.JSON
Por ejemplo, para el nombre de la clave, newkey, defina lo siguiente:
{"
activeKeyName": "newkey"
}
5. Reinicie los servicios de ThingWorx Flow.
Nube o nube privada virtual
1. Genere un nuevo par de claves con el nombre de clave y el secreto.
El nombre de clave se puede definir en cualquier valor.
La longitud del secreto debe ser un múltiplo de 16. Se puede utilizar el generador de GUID para crear el secreto. El GUID no debe contener guiones (-).
2. En la implementación de ThingWorx Flow se incluye un fichero de clave-secreto denominado <nombre de versión>-keys. En este fichero de clave-secreto se incluye la clave de codificación activa y las claves de codificación anteriores en el formato JSON almacenado en oldEncKeys.json. Para buscar el fichero de clave-secreto correcto, ejecute el siguiente comando:
kubectl get secrets
3. Ejecute el siguiente comando para abrir el fichero de secreto y editarlo:
kubectl edit secret <release name>-keys
En el fichero de secreto se incluyen las siguientes entradas:
ENCRYPTION_KEY:QVNERkdISktMMTIzNDU2Nw==
ACTIVE_ENCRYPTION_KEY_NAME:bXlrZXk=
oldEncKeys.json:e30=
4. Base64 descodifica los valores actuales de ENCRYPTION_KEY, ACTIVE_ENCRYPTION_KEY_NAME y oldEncKeys.json. En este ejemplo:
Para ENCRYPTION_KEY, el valor QVNERkdISktMMTIzNDU2Nw== se descodifica en ASDFGHJKL1234567.
Para ACTIVE_ENCRYPTION_KEY_NAME, el valor bXlrZXk= se descodifica en mykey.
Para oldEncKeys.json, el valor e30= se descodifica en {}.
5. Base64 codifica los nuevos valores de ENCRYPTION_KEY,, ACTIVE_ENCRYPTION_KEY_NAME y oldEncKeys.json. En este ejemplo:
Para ENCRYPTION_KEY, el valor 0EE0D33AC67E4389AB2B46123729B875 se codifica en MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU=.
Para ACTIVE_ENCRYPTION_KEY_NAME, el valor newkey se codifica en bmV3a2V5.
Para oldEncKeys.json el par de claves anterior en formato JSON {"mykey":"ASDFGHJKL1234567"} se codifica en eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9.
6. Introduzca los valores nuevos en el fichero de clave-secreto y, a continuación, guarde el fichero.
ENCRYPTION_KEY:MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU=
ACTIVE_ENCRYPTION_KEY_NAME:bmV3a2V5
oldEncKeys.json:eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9
7. Reinicie todos los contenedores de ThingWorx Flow.
¿Fue esto útil?