Конфигурирование SSL/TLS для Ignite
При использовании HA-кластеризации ThingWorx можно сконфигурировать SSL или TLS для Ignite:
Конфигурирование Ignite
Чтобы запустить Ignite с SSL, необходимо создать экземпляр SslContextFactory в файле конфигурации Ignite, в котором добавляются путь к хранилищу ключей и пароль. В следующем примере наш путь к хранилищу ключей - /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>
Запуск Ignite:
./ignite.sh config/default-config.xml
При запуске Ignite в консоли должен отображаться следующий текст: Security status [authentication=off, tls/ssl=on].
Конфигурирование ThingWorx
Теперь можно сконфигурировать Ignite в ThingWorx. Ignite может выполняться как клиент или встроенное приложение; эта конфигурация работает для любой из этих опций.
1. Скопируйте сертификаты Ignite в экземпляр или убедитесь, что они доступны на компьютере, на котором выполняется ThingWorx.
2. Измените файл platform-settings.json для активизации SSL. Также измените igniteKeyStoreFilePath и 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"
}
Шифрование паролей с помощью инструмента управления безопасностью ThingWorx
Если нужно запретить вставку незашифрованного пароля в файл platform-settings.json, можно зашифровать пароль внутри twx-keystore с помощью инструмента безопасности. Пароль необходимо зашифровать с помощью опции encrypt.ignite.keystore.password.
./security-common-cli keystore.conf set encrypt.ignite.keystore.password "ptcptc"
Затем измените файл platform-settings.json, чтобы ThingWorx выбирал пароль из хранилища ключей:
"ssl-active": true,
"igniteKeyStoreFilePath": "/ThingworxPlatform/ignite-keystore/ignite.pfx",
"igniteKeyStorePassword": "encrypt.ignite.keystore.password"
Было ли это полезно?