AKKA에 대한 SSL/TLS 구성
온프레미스 환경에서 AKKA에 대한 SSL/TLS 구성
* 
이 배포 기능은 ThingWorx 9.4 이상부터 사용할 수 있습니다.
온프레미스 환경에서 ThingWorx HA 클러스터링을 사용할 때 AKKA에 대해 SSL을 구성하려면 다음 단계를 수행합니다.
1. 모든 플랫폼에서 사용할 keystoretruststore를 만듭니다.
* 
키워드 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-pathThingworxPlatform 폴더의 경로여야 합니다. pathThingworxStorage 폴더의 경로여야 합니다.
다음은 a, b 및 c와 관련이 있습니다. keystoretruststore 암호를 ThingWorx Internal 키 저장소에 추가하여 이러한 값을 보호합니다.
a. 다음 하위 단계에서는 내부 ThingWorx 도구인 security-common-cli를 사용하여 키 저장소에 보안을 삽입합니다. security-common-cli 도구는 설치 폴더에 있어야 합니다. 자세한 내용은 도움말 센터의 보안 관리 도구를 참조하십시오. 필요한 경우 각 플랫폼에 대해 각기 다른 버전의 keystore.conf로 password-file-pathpath 매개 변수를 지정하여 이 프로세스를 반복합니다.
b. security-common-cli 도구를 사용하여 명령줄에서 다음 명령을 실행합니다. security-common-tool에 대한 유효한 경로
지정:
cd [...]\security-common-cli-1.3.6.110\bin
security-common-cli
c. security-common-cli 터미널에서 다음 명령을 실행하고 secretkeystoretruststore에 대한 사용자 정의 암호로 바꿉니다. 유효한 keystore.conf 경로를 입력합니다.
> init [...]\keystore.conf
> set encrypt.akka.keystore.password "secret"
> set encrypt.akka.truststore.password "secret"
3. akka-keystore.jksakka-truststore.jks 파일을 알려진 경로에 배치합니다. 경로는 상대 경로이거나 절대 경로로 지정할 수 있습니다. 예를 들어, 상대 경로는 /ThingworxPlatform/[...]/akka-keystore.jks와 같이 지정합니다. 절대 경로는 C:/akkaCerts/akka-keystore.jks와 같이 지정합니다.
* 
akka-keystore.jksakka-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.jksakka-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. 응용 프로그램을 다시 시작합니다.
도움이 되셨나요?