Configurazione di SSL/TLS per Ignite
È possibile configurare SSL o TLS per Ignite quando si utilizza il clustering a disponibilità elevata ThingWorx:
Configurazione di Ignite
Per eseguire Ignite con SSL, è necessario creare un'istanza di SslContextFactory nel file di configurazione di Ignite, in cui aggiungere il percorso del keystore e la password. Nell'esempio riportato di seguito il percorso del keystore è /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>
Esecuzione di Ignite:
./ignite.sh config/default-config.xml
Il testo seguente deve essere visualizzato nella console all'avvio di Ignite: Security status [authentication=off, tls/ssl=on].
Configurazione di ThingWorx
A questo punto è possibile configurare Ignite in ThingWorx. È possibile eseguire Ignite come client o in modalità incorporata. Questa configurazione funziona con entrambe le opzioni.
1. Copiare i certificati di Ignite nell'istanza o assicurarsi che siano disponibili nel computer in cui ThingWorx è in esecuzione.
2. Modificare il file platform-settings.json in un certificato SSL attivo. Modificare ancheigniteKeyStoreFilePath eigniteKeyStorePassword.
"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"
}
Crittografia delle password con ThingWorx Security Management Tool
Se si desidera evitare di inserire la password semplice nel file platform-settings.json, è possibile crittografarla all'interno di twx-keystore utilizzando lo strumento di sicurezza. È necessario crittografare la password utilizzando encrypt.ignite.keystore.password.
./security-common-cli keystore.conf set encrypt.ignite.keystore.password "ptcptc"
Quindi, modificare il file platform-settings.json in modo che ThingWorx selezioni la password dal keystore:
"ssl-active": true,
"igniteKeyStoreFilePath": "/ThingworxPlatform/ignite-keystore/ignite.pfx",
"igniteKeyStorePassword": "encrypt.ignite.keystore.password"