Конфигурирование SSL/TLS для AKKA
Конфигурирование SSL/TLS для AKKA на месте
* 
Эта распределенная возможность доступна с версии ThingWorx 9.4 и выше.
Чтобы сконфигурировать SSL для AKKA при использовании кластеризации ThingWorx высокой доступности на месте, выполните следующие шаги.
1. Создайте хранилище ключей и хранилище доверия, которые будут использоваться всеми платформами.
* 
Ключевое слово secret можно заменить на настроенный пароль. Используйте этот пароль для доступа к созданным хранилищу ключей и хранилищу доверия.
a. Чтобы создать хранилище ключей с открытым и закрытым ключами, выполните следующую команду в терминале:
keytool -v -genkeypair -dname "CN=SEEKERS,OU=RND,O=PTC,C=IL" -keystore akka-keystore.jks -storepass secret -keyalg RSA -keysize 2048 -alias server -validity 3650 -deststoretype pkcs12 -ext KeyUsage=digitalSignature,dataEncipherment,keyEncipherment,keyAgreement -ext ExtendedKeyUsage=serverAuth,clientAuth -ext SubjectAlternativeName:c=DNS:localhost,IP:127.0.0.1
b. Экспортируйте сертификат сервера.
keytool -v -exportcert -file server.cer -alias server -keystore akka-keystore.jks -storepass secret -rfc
c. Создайте хранилище доверия для клиента и импортируйте сертификат сервера с помощью следующей команды:
keytool -v -importcert -file server.cer -alias server -keystore akka-truststore.jks -storepass secret -noprompt
2. Создайте файл keystore.conf со следующим содержимым:
{
security {
secret-provider = "com.thingworx.security.provider.keystore.KeyStoreProvider"
default-encryption-key-length = 128
keystore {
password-file-path = "I:\\ThingworxPlatform"
password-file-name = "keystore-password"
path = "I:\\ThingworxStorage"
name = "keystore"
}
}
}
* 
password-file-path должен представлять путь к папке ThingworxPlatform. path должен представлять путь к папке ThingworxStorage.
Для a, b и c существенно следующее. Добавьте keystore и пароли truststore во внутреннее хранилище ключей ThingWorx, чтобы защитить эти значения.
a. В следующих действиях в шагах для вставки ключей в хранилище ключей будет использоваться внутренний инструмент ThingWorx security-common-cli. Инструмент security-common-cli должен находиться в папке установки. Дополнительные сведения см. в разделе Инструмент управления безопасностью справочного центра. При необходимости повторите этот процесс для каждой платформы с различными версиями keystore.conf, указав параметры password-file-path и path.
b. Используя инструмент security-common-cli, выполните с командной строки следующую команду (укажите действительный путь к инструменту security-common-tool)
:
cd [...]\security-common-cli-1.3.6.110\bin
security-common-cli
c. В терминале security-common-cli выполните следующие команды и замените ключ на пользовательские пароли для keystore и truststore. Введите действительный путь keystore.conf.
> init [...]\keystore.conf
> set encrypt.akka.keystore.password "secret"
> set encrypt.akka.truststore.password "secret"
3. Поместите файлы akka-keystore.jks и akka-truststore.jks на известный путь. Путь может быть относительным или абсолютным. Например, относительный путь может иметь вид: /ThingworxPlatform/[...] /akka-keystore.jks. Пример абсолютного пути: C:/akkaCerts/akka-keystore.jks.
* 
У вас должна быть только одна копия akka-keystore.jks и akka-truststore.jks. Поскольку эти файлы создаются один раз для всех платформ в кластере и используются одни и те же файлы для всех платформ, необходимо использовать те же копии для каждой платформы.
* 
Рекомендуется поместить файлы в папку /ThingworxPlatform и использовать относительный путь.
4. Отредактируйте файл ThingworxPlatform\platform-settings.json и добавьте в раздел ClusteredModeSettings следующие параметры:
"ClusteredModeSettings": {
"CoordinatorConnectionTimeout": 10000,
"CoordinatorHosts": "localhost:2181",
"CoordinatorMaxRetries": 3,
"CoordinatorRetryTimeout": 3000,
"CoordinatorSessionTimeout": 90000,
"LoadBalancerBase64EncodedCredentials": "QWRtaW5pc3RyYXRvcjp0clVmNnl1ejI/X0d1Yg==",
"PlatformId": "platform1",
"ZKNamespace": "",
"MetricsCacheFrequency": "60000",
"ModelSyncPollInterval": "100",
"ModelSyncTimeout": "120000",
"ModelSyncMaxDBUnavailableErrors": "10",
"ModelSyncMaxCacheUnavailableErrors": "10",
"IgnoreInactiveInterfaces": true,
"IgnoreVirtualInterfaces": true,
"HostAddressFilter": "",
"AkkaSSLEnabled": true,
"AkkaKeyStore":"C:/tempcerts/akka-keystore.jks",
"AkkaTrustStore":"C:/tempcerts/akka-keystore.jks",
"AkkaKeyStorePassword":"encrypt.akka.keystore.password",
"AkkaTrustStorePassword":"encrypt.akka.truststore.password"
}
Укажите действительный путь к akka-keystore.jks и akka-truststore.jks.
"AkkaSSLEnabled": true,
"AkkaKeyStore":"[...]/akka-keystore.jks",
"AkkaTrustStore":"[...]/akka-truststore.jks",
"AkkaKeyStorePassword":"encrypt.akka.keystore.password",
"AkkaTrustStorePassword":"encrypt.akka.truststore.password"
* 
Параметр AkkaTlsProtocolVersion является необязательным параметром. Значение по умолчанию для этого параметра, TLSv1.2, при необходимости может быть изменено в будущем.
5. Перезапустите приложение.
Было ли это полезно?