Configuración de SSL/TLS para Ignite
Se puede configurar SSL o TLS para Ignite al utilizar la agrupación de alta disponibilidad de ThingWorx:
Configuración de Ignite
Para ejecutar Ignite con SSL, es necesario crear una instancia de SslContextFactory en el fichero de configuración de Ignite, en el que el usuario añade la ruta del almacén de claves y la contraseña. En el siguiente ejemplo, nuestra ruta del almacén de claves es /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>
Ejecutar Ignite:
./ignite.sh config/default-config.xml
El siguiente texto debe aparecer en la consola cuando se inicie Ignite: Security status [authentication=off, tls/ssl=on].
Configuración de ThingWorx
Ahora se puede configurar Ignite en ThingWorx. Ignite se puede ejecutar como cliente o se manera integrada. Esta configuración funciona para cualquiera de las opciones.
1. Copie los certificados de Ignite en la instancia o asegúrese de que estén disponibles en el ordenador en el que se ejecuta ThingWorx.
2. Modifique el fichero platform-settings.json a SSL activo. Modifique también igniteKeyStoreFilePath e 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"
}
Cifrado de contraseñas con la herramienta de gestión ThingWorx Security
Para evitar la inserción de la contraseña sin formato en el fichero platform-settings.json, se puede cifrar la contraseña en twx-keystore con la herramienta de seguridad. La contraseña se debe cifrar mediante el encrypt.ignite.keystore.password.
./security-common-cli keystore.conf set encrypt.ignite.keystore.password "ptcptc"
A continuación, cambie el fichero platform-settings.json para que ThingWorx seleccione la contraseña del almacén de claves:
"ssl-active": true,
"igniteKeyStoreFilePath": "/ThingworxPlatform/ignite-keystore/ignite.pfx",
"igniteKeyStorePassword": "encrypt.ignite.keystore.password"