ThingWorx Flow > ThingWorx Flow Installation und Verwaltung > ThingWorx Flow verwalten > ThingWorx Flow Verschlüsselungsschlüssel drehen
ThingWorx Flow Verschlüsselungsschlüssel drehen
Sensibel Daten wie z.B. Verbindungen, Autorisierungen und Workflow-Aktionen, werden in ThingWorx Flow verschlüsselt. In einigen Fällen muss der dazu erforderliche Verschlüsselungsschlüssel geändert werden, ohne auf die Möglichkeit zur Verwendung zuvor verschlüsselter Daten zu verzichten. In den folgenden Schritten wird gezeigt, wie Sie einen neuen Verschlüsselungsschlüssel festlegen.
Lokales Bereitstellungsverfahren
1. Generieren Sie ein neues Schlüsselpaar wie Schlüsselname und Verschlüsselungswort.
Sie können einen beliebigen Namen für den Schlüssel angeben.
Die Länge des Verschlüsselungsworts muss ein Vielfaches von 16 sein. Die einfachste Methode ist, einen GUID-Generator zur Erstellung des Verschlüsselungsworts zu verwenden.
* 
Der GUID darf keine Bindestriche (-) enthalten.
Für dieses Beispiel lautet der Schlüssel newkey, und der Wert ist 0EE0D33AC67E4389AB2B46123729B875.
2. Entschlüsseln Sie die Schlüsseldatei.
a. Navigieren Sie zum Verzeichnis flow-installer, und kopieren Sie dann Sec_key aus der Datei settings.json. Dieser Wert wird später vom Schlüssel-Tool verwendet.
b. Navigieren Sie zum Verzeichnis ThingWorxFlow.
c. Verknüpfen Sie das Schlüssel-Tool, indem Sie den folgenden Befehle ausführen:
cd /d C:\ThingWorxFlow\cryptography\tw-security-common-nodejs
npm link
d. Entschlüsseln Sie die Schlüsseldatei in eine temporäre Datei, indem Sie die folgenden Befehle ausführen:
cd /d C:\ThingWorxFlow
C:\ThingWorxFlow> PtcOrchKeyFileTool --secret "<value from sec_key>" --keyfile-location "misc\keyfile-key" --plaintext "keys.dec" --encrypted "cryptography\keys.enc" decrypt
e. Fügen Sie einen neuen Schlüssel zu einer Nur-Text-Datei hinzu, wie keys.dec in diesem Beispiel. Die Verbindungsinformationen für RabbitMQ und Postgres werden in dieser Datei gespeichert.
f. Verschlüsseln Sie die temporäre Datei in eine Schlüsseldatei, indem Sie den folgenden Befehl ausführen:
C:\ThingWorxFlow> PtcOrchKeyFileTool --secret "<value from sec_key>" --keyfile-location "misc\keyfile-key" --plaintext"keys.dec"--encrypted "cryptography\keys.enc" encrypt
g. Löschen Sie die temporäre Datei keys.dec.
3. Konfigurieren Sie für jeden Flow Dienst den Namen und Wert des Verschlüsselungsschlüssels unter Verwendung der folgenden Schritte:
a. Bearbeiten Sie die Datei deploymentConfig.json.
b. Legen Sie die Eigenschaft ACTIVE_ENCRYPTION_KEY auf den neuen Schlüsselnamen fest.
Wenn der neue Schlüsselname beispielsweise "newkey" lautet, muss deploymentConfig.json Folgendes enthalten:
{
"ACTIVE_ENCRYPTION_KEY": "newkey"
}
4. Starten Sie die ThingWorx Flow Dienste neu.
Verfahren für Cloud oder virtuelle private Cloud
1. Generieren Sie ein neues Schlüsselpaar wie Schlüsselname und Verschlüsselungswort.
Sie können einen beliebigen Namen für den Schlüssel angeben.
Die Länge des Verschlüsselungsworts muss ein Vielfaches von 16 sein. Die einfachste Methode ist, einen GUID-Generator zur Erstellung des Verschlüsselungsworts zu verwenden.
* 
Der GUID darf keinen Bindestrich (-) enthalten.
Für dieses Beispiel lautet der Schlüssel newkey, und der Wert ist 0EE0D33AC67E4389AB2B46123729B875.
2. Suchen Sie die Datei mit dem Verschlüsselungswort für den Schlüssel. Die Bereitstellung von ThingWorx Flow umfasst ein Verschlüsselungswort für Schlüssel (namens < Versionsname >-Schlüssel). Dieses Verschlüsselungswort enthält sowohl den aktiven Verschlüsselungsschlüssel als auch die alten Verschlüsselungsschlüssel in einer in oldEncKeys.json gespeicherten JSON-Struktur. Um das richtige Verschlüsselungswort zu finden, führen Sie den folgenden Befehl aus:
kubectl get secrets
3. Öffnen Sie die Datei mit dem Verschlüsselungswort zur Bearbeitung, indem Sie den folgenden Befehl ausführen:
kubectl edit secret <release name>-keys
Die Datei mit dem Verschlüsselungswort enthält verschiedene Einträge, darunter die folgenden:
ENCRYPTION_KEY:QVNERkdISktMMTIzNDU2Nw==
ACTIVE_ENCRYPTION_KEY_NAME:bXlrZXk=
oldEncKeys.json:e30=
4. Decodieren Sie die aktuellen Werte der Einträge ENCRYPTION_KEY, ACTIVE_ENCRYPTION_KEY_NAME und oldEncKeys.json mit Base64. In diesem Beispiel gilt:
Für ENCRYPTION_KEY wird der Wert QVNERkdISktMMTIzNDU2Nw== in ASDFGHJKL1234567 decodiert.
Für ACTIVE_ENCRYPTION_KEY_NAME wird der Wert bXlrZXk= in mykey decodiert.
Für oldEncKeys.json wird der Wert e30= in {} decodiert.
5. Codieren Sie die neuen Werte für die Einträge ENCRYPTION_KEY, ACTIVE_ENCRYPTION_KEY_NAME und oldEncKeys.json mit Base64. In diesem Beispiel gilt:
Für ENCRYPTION_KEY wird der Wert 0EE0D33AC67E4389AB2B46123729B875 in MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU= codiert.
Für ACTIVE_ENCRYPTION_KEY_NAME wird der Wert newkey in bmV3a2V5 codiert.
Für oldEncKeys.json wird das alte Schlüsselpaar im JSON-Format {"mykey":"ASDFGHJKL1234567"} in eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9 codiert.
6. Geben Sie die neuen Werte in die Datei mit dem Verschlüsselungswort ein, und speichern Sie die Datei.
ENCRYPTION_KEY:MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU=
ACTIVE_ENCRYPTION_KEY_NAME:bmV3a2V5
oldEncKeys.json:eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9
7. Starten Sie alle Flow Container neu.