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, procédez comme suit :
1. Créez le KeyStore Ignite.
2. Instanciez SslContextFactory dans le fichier de configuration Ignite, en spécifiant le chemin d'accès et le mot de passe du KeyStore. Dans l'exemple suivant, le chemin du KeyStore est /ThingworxPlatform/ignite-keystore/ignite.pfx :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Define Ignite configuration bean -->
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="peerClassLoadingEnabled" value="false"/>
<!-- SSL Context Factory -->
<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="keyStoreType" value="PKCS12"/>
<property name="trustStoreFilePath" value="/ThingworxPlatform/ignite-keystore/truststore.pfx"/>
<property name="trustStorePassword" value="ptcptc"/>
<property name="trustStoreType" value="PKCS12"/>
<property name="protocol" value="TLS"/>
</bean>
</property>
<!-- Other Ignite properties can go here -->
</bean>
</beans>
Exécuter Ignite :
./ignite.sh -v -J"${JVM_XOPTS}"  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.
* 
Les utilisateurs de Tomcat doivent avoir accès aux certificats ou les copier dans le répertoire ThingworxPlatform.
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"
}
Consultez la section Paramètres de cache et exemple à la rubrique Paramètres de la plateforme pour la haute disponibilité ThingWorx.
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"
Configuration de SSL/TLS pour ZooKeeper
Pour configurer SSL/TLS pour ZooKeeper, consultez la rubrique Configuration de SSL/TLS pour ZooKeeper.
Est-ce que cela a été utile ?