Configuración de SSL/TLS para AKKA
Configuración de SSL/TLS para AKKA en un entorno local
* 
Esta capacidad distribuida está disponible después de ThingWorx 9.4 y versiones posteriores.
Para configurar SSL para AKKA al utilizar la agrupación de alta disponibilidad de ThingWorx en un entorno local, realice los siguientes pasos:
1. Cree un keystore y un truststore, que todas las plataformas utilizarán.
* 
La palabra clave secret se puede reemplazar por una contraseña personalizada. Utilice esta contraseña para acceder a los ficheros keystore y truststore creados.
a. Para crear un keystore con una clave pública y privada, ejecute el siguiente comando en el terminal:
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. Exporte el certificado del servidor.
keytool -v -exportcert -file server.cer -alias server -keystore akka-keystore.jks -storepass secret -rfc
c. Cree el truststore del cliente e importe el certificado del servidor con el siguiente comando:
keytool -v -importcert -file server.cer -alias server -keystore akka-truststore.jks -storepass secret -noprompt
2. Cree un fichero keystore.conf con el siguiente contenido:
{
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 debe ser la ruta a la carpeta ThingworxPlatform. path debe ser la ruta a la carpeta ThingworxStorage.
Lo siguiente es relevante para a, b y c. Añada las contraseñas keystore y truststore en el keystore interno de ThingWorx para proteger estos valores.
a. En los siguientes subpasos, se utilizará security-common-cli, una herramienta interna de ThingWorx para insertar secretos en el keystore. La herramienta security-common-cli debe existir en la carpeta de instalación. Para obtener más información, consulte Herramienta de gestión de seguridad en el centro de ayuda. Repita este proceso para cada plataforma, si fuera necesario, con distintas versiones de keystore.conf especificando los siguientes parámetros: password-file-path y path.
b. Con la herramienta security-common-cli, en la línea de comandos, ejecute el siguiente comando (especifique la ruta válida para la herramienta security-common-tool)
:
cd [...]\security-common-cli-1.3.6.110\bin
security-common-cli
c. Desde el terminal security-common-cli, ejecute los siguientes comandos y reemplace secret por las contraseñas personalizadas para keystore y truststore. Introduzca la ruta keystore.conf válida.
> init [...]\keystore.conf
> set encrypt.akka.keystore.password "secret"
> set encrypt.akka.truststore.password "secret"
3. Coloque los ficheros akka-keystore.jks y akka-truststore.jks en una ruta conocida. La ruta puede ser relativa o absoluta. Por ejemplo, una ruta relativa sería /ThingworxPlatform/[...] /akka-keystore.jks. Un ejemplo de una ruta absoluta sería C:/akkaCerts/akka-keystore.jks.
* 
Solo debe haber una copia de akka-keystore.jks y akka-truststore.jks. Debido a que estos ficheros se crean una vez para todas las plataformas del clúster y se utilizan los mismos ficheros para todas las plataformas, se deben utilizar las mismas copias para cada plataforma.
* 
Se recomienda colocar los ficheros en la carpeta /ThingworxPlatform y utilizar una ruta relativa.
4. Edite ThingworxPlatform\platform-settings.json y añada los siguientes parámetros en la sección 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"
}
proporcione la ruta akka-keystore.jks y akka-truststore.jks válida.
"AkkaSSLEnabled": true,
"AkkaKeyStore":"[...]/akka-keystore.jks",
"AkkaTrustStore":"[...]/akka-truststore.jks",
"AkkaKeyStorePassword":"encrypt.akka.keystore.password",
"AkkaTrustStorePassword":"encrypt.akka.truststore.password"
* 
AkkaTlsProtocolVersion es un parámetro opcional. El valor por defecto de este parámetro es TLSv1.2, que, si fuera necesario, se podrá cambiar en el futuro.
5. Reinicie la aplicación.
¿Fue esto útil?