Configuration de SSL/TLS pour Ignite
Vous pouvez configurer SSL ou TLS pour Ignite dans un environnement ThingWorx de cluster haute disponibilité :
Configuration d'Ignite
Pour exécuter Ignite avec SSL, il convient d'instancier SslContextFactory dans le fichier de configuration Ignite, dans lequel vous ajoutez le chemin d'accès au keystore et le mot de passe. Dans l'exemple suivant, le chemin d'accès au keystore est /ThingworxPlatform/ignite-keystore/ignite.pfx :
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="sslContextFactory">
<bean class="org.apache.ignite.ssl.SslContextFactory">
<property name="keyStoreFilePath" value="/ThingworxPlatform/ignite-keystore/ignite.pfx"/>
<property name="keyStorePassword" value="ptcptc"/>
<property name="trustManagers">
<bean class="org.apache.ignite.ssl.SslContextFactory" factory-method="getDisabledTrustManager"/>
</property>
</bean>
</property>
</bean>
Exécuter Ignite :
./ignite.sh config/default-config.xml
Le texte suivant doit apparaître dans la console au démarrage d'Ignite : Security status [authentication=off, tls/ssl=on].
Configuration de ThingWorx
Vous pouvez désormais configurer Ignite dans ThingWorx. Ignite peut être exécuté en tant que client ou intégré. Cette configuration fonctionne pour l'une ou l'autre des options.
1. Copiez les certificats Ignite dans votre instance ou assurez-vous qu'ils sont disponibles sur la machine sur laquelle ThingWorx est en cours d'exécution.
2. Modifiez le fichier platform-settings.json pour activer SSL. Modifiez également igniteKeyStoreFilePath et igniteKeyStorePassword.
"cache": {
"init-timeout": "30 seconds",
"provider-type": "com.thingworx.cache.ignite.IgniteCacheProvider",
"cache-mappings": {},
"ignite": {
"instance-name": "twx-core-server",
"client-mode": false,
"address-resolver" : {
"type": "zookeeper",
"connection": "localhost:2181"
},
"ssl-active": true,
"igniteKeyStoreFilePath": "/ThingworxPlatform/ignite-keystore/ignite.pfx",
"igniteKeyStorePassword": "ptcptc"
}
Chiffrement des mots de passe à l'aide de l'outil de gestion ThingWorx Security
Si vous souhaitez éviter d'insérer le mot de passe en texte brut dans le fichier platform-settings.json, vous pouvez le chiffrer dans twx-keystore à l'aide de l'outil de sécurité. Vous devez chiffrer le mot de passe à l'aide de l'option encrypt.ignite.keystore.password.
./security-common-cli keystore.conf set encrypt.ignite.keystore.password "ptcptc"
Modifiez ensuite le fichier platform-settings.json afin que ThingWorx récupère le mot de passe dans le keystore :
"ssl-active": true,
"igniteKeyStoreFilePath": "/ThingworxPlatform/ignite-keystore/ignite.pfx",
"igniteKeyStorePassword": "encrypt.ignite.keystore.password"