Akka の SSL/TLS の設定
オンプレミス環境での Akka の SSL/TLS の設定
|
この配分機能は、ThingWorx 9.4 以降で使用できます。
|
オンプレミス環境で ThingWorx HA クラスタを使用しているときに Akka の SSL を設定するには、次の手順を実行します。
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 ターミナルから、以下のコマンドを実行し、secret を 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 のコピーは 1 つだけ使用します。これらのファイルはクラスタ内のすべてのプラットフォームに対して一度作成し、すべてのプラットフォームで同じファイルを使用するので、プラットフォームごとに同じコピーを使用する必要があります。
|
|
これらのファイルを /ThingworxPlatform フォルダに配置し、相対パスを使用することをお勧めします。
|
4. ThingworxPlatform\platform-settings.json を編集し、
ThingWorx HA のプラットフォームの設定の説明に従って、
AkkaSettings セクションに
AkkaSSLEnabled、
AkkaKeyStore、
AkkaTrustStore、
AkkaKeyStorePassword、
AkkaTrustStorePassword、
AkkaTlsProtocolVersion の各パラメータを追加します。
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"
|
AkkaTlsProtocolVersion はオプションのパラメータです。このパラメータのデフォルト値は TLSv1.2 で、必要に応じて後で変更できます。
|
5. アプリケーションを再起動します。