Configuration de SSL/TLS pour AKKA
Configuration de SSL/TLS pour AKKA dans un environnement sur site
* 
Cette fonctionnalité distribuée est disponible dans ThingWorx 9.4 et versions ultérieures.
Pour configurer SSL pour AKKA avec un clustering ThingWorx haute disponibilité dans un environnement sur site, procédez comme suit :
1. Créez un KeyStore et un TrustStore, qui seront utilisés par toutes les plateformes.
* 
Le secret de mot-clé peut être remplacé par un mot de passe personnalisé. Utilisez ce mot de passe pour accéder aux KeyStore et TrustStore créés.
a. Pour créer un KeyStore avec une clé publique et privée, exécutez la commande suivante sur votre terminal :
keytool -v -genkeypair -dname "CN=SEEKERS,OU=RND,O=PTC,C=IL" -keystore akka-keystore.jks -storepass secret -keyalg RSA -keysize 2048 -alias server -validity 3650 -deststoretype pkcs12 -ext KeyUsage=digitalSignature,dataEncipherment,keyEncipherment,keyAgreement -ext ExtendedKeyUsage=serverAuth,clientAuth -ext SubjectAlternativeName:c=DNS:localhost,IP:127.0.0.1
b. Exportez le certificat du serveur.
keytool -v -exportcert -file server.cer -alias server -keystore akka-keystore.jks -storepass secret -rfc
c. Créez le TrustStore pour le client et importez le certificat du serveur avec la commande suivante :
keytool -v -importcert -file server.cer -alias server -keystore akka-truststore.jks -storepass secret -noprompt
2. Créez un fichier keystore.conf avec le contenu suivant :
{
security {
secret-provider = "com.thingworx.security.provider.keystore.KeyStoreProvider"
default-encryption-key-length = 128
keystore {
password-file-path = "I:\\ThingworxPlatform"
password-file-name = "keystore-password"
path = "I:\\ThingworxStorage"
name = "keystore"
}
}
}
* 
password-file-path doit correspondre au chemin d'accès au dossier ThingworxPlatform. path doit correspondre au chemin d'accès au dossier ThingworxStorage.
Ce qui suit s'applique pour a, b et c. Ajoutez les mots de passe keystore et truststore dans le KeyStore interne de ThingWorx pour protéger ces valeurs.
a. Dans les sous-étapes suivantes, nous utiliserons security-common-cli, un outil ThingWorx interne, pour insérer des clés secrètes dans le KeyStore. L'outil security-common-cli doit exister dans le dossier d'installation. Pour plus d'informations, consultez la rubrique Outil de gestion de la sécurité du Centre d'aide. Répétez ce processus pour chaque plateforme, si nécessaire, avec différentes versions du fichier keystore.conf spécifiant les paramètres suivants : password-file-path et path.
b. A l'aide de l'outil security-common-cli, depuis la ligne de commande, exécutez la commande suivante (spécifiez le chemin valide vers l'outil security-common-tool)
 :
cd [...]\security-common-cli-1.3.6.110\bin
security-common-cli
c. Depuis le terminal security-common-cli, exécutez les commandes suivantes et remplacez secret par vos mots de passe personnalisés pour le keystore et le truststore. Entrez le chemin d'accès valide au fichier keystore.conf.
> init [...]\keystore.conf
> set encrypt.akka.keystore.password "secret"
> set encrypt.akka.truststore.password "secret"
3. Placez les fichiers akka-keystore.jks et akka-truststore.jks dans un chemin connu. Le chemin peut être relatif ou absolu. Par exemple, un chemin relatif sera de la forme /ThingworxPlatform/[...]/akka-keystore.jks, et un chemin absolu, de la forme C:/akkaCerts/akka-keystore.jks.
* 
Vous ne devez avoir qu'une seule copie des fichiers akka-keystore.jks et akka-truststore.jks. Etant donné que vous créez ces fichiers une fois pour toutes les plateformes du cluster et que vous utilisez les mêmes fichiers pour toutes les plateformes, vous devez utiliser les mêmes copies pour chaque plateforme.
* 
Il est recommandé de placer les fichiers dans le dossier /ThingworxPlatform et d'utiliser un chemin relatif.
4. Modifiez ThingworxPlatform\platform-settings.json et ajoutez les paramètres suivants dans la section ClusteredModeSettings :
"ClusteredModeSettings": {
"CoordinatorConnectionTimeout": 10000,
"CoordinatorHosts": "localhost:2181",
"CoordinatorMaxRetries": 3,
"CoordinatorRetryTimeout": 3000,
"CoordinatorSessionTimeout": 90000,
"LoadBalancerBase64EncodedCredentials": "QWRtaW5pc3RyYXRvcjp0clVmNnl1ejI/X0d1Yg==",
"PlatformId": "platform1",
"ZKNamespace": "",
"MetricsCacheFrequency": "60000",
"ModelSyncPollInterval": "100",
"ModelSyncTimeout": "120000",
"ModelSyncMaxDBUnavailableErrors": "10",
"ModelSyncMaxCacheUnavailableErrors": "10",
"IgnoreInactiveInterfaces": true,
"IgnoreVirtualInterfaces": true,
"HostAddressFilter": "",
"AkkaSSLEnabled": true,
"AkkaKeyStore":"C:/tempcerts/akka-keystore.jks",
"AkkaTrustStore":"C:/tempcerts/akka-keystore.jks",
"AkkaKeyStorePassword":"encrypt.akka.keystore.password",
"AkkaTrustStorePassword":"encrypt.akka.truststore.password"
}
Spécifiez le chemin valide d'accès aux fichiers akka-keystore.jks et akka-truststore.jks.
"AkkaSSLEnabled": true,
"AkkaKeyStore":"[...]/akka-keystore.jks",
"AkkaTrustStore":"[...]/akka-truststore.jks",
"AkkaKeyStorePassword":"encrypt.akka.keystore.password",
"AkkaTrustStorePassword":"encrypt.akka.truststore.password"
* 
AkkaTlsProtocolVersion est un paramètre facultatif. La valeur par défaut de ce paramètre est TLSv1.2, valeur qui peut être modifiée ultérieurement au besoin.
5. Redémarrez l'application.
Est-ce que cela a été utile ?