# Talend Data Preparation、Streams Runner、Spark Job Server間にHTTPS接続を設定

Talend Data Preparation、Streams Runner、Spark Job Serverの間に接続を保護するには、対応する設定ファイルを編集する必要があります。

Streams Runner設定ファイルのセキュリティ設定は、上書きを避けるため、ファイルの最後にあるIncludeセクションの後のAppendセクションで実行する必要があります。

最初のステップは、Spark Job Server HTTPSでサービスとして設定することです。次に、HTTPSで動作するStreams RunnerとSpark Job Server間のSSL通信を有効にする必要があります。その後、HTTPSでStreams Runnerをサービスとして設定し、最後にHTTPSで動作するTalend Data PreparationとStreams Runner間のSSL通信を有効にします。

## 始める前に

* Talend Data PreparationはHTTPSのサービスとして設定されています。詳細は、[Talend Data PreparationのHTTPS接続を設定](https://help.qlik.com/talend/ja-JP/installation-guide-linux/7.3/configuring-https-connection-for-talend-data-preparation)をご覧ください。
* Talend Data Preparationの認証を生成し、WebブラウザーのTrustStoreに追加しました。
* Spark Job ServerおよびStreams Runnerがインストールされ実行されています。

## 手順

1. HTTPSでSpark Job Serverサービスを保護するには、&lt;Spark\_Job\_Server\_installation\_path&gt;/settings.sh 設定ファイルを開きます。
2. security\_ssl\_enabledパラメーターの値をonに設定します。
3. security\_path\_to\_keystoreおよびsecurity\_keystore\_password のパラメーターの値を編集して、Spark Job Serverの認証を含むkeystoreファイルのパスとパスワードを設定します。
   ```
   security_ssl_enabled=on
   # DO NOT CHANGE
   # SECURITY PATH TO KEYSTORE
   # Required : No
   # Env variable : SECURITY_PATH_TO_KEYSTORE
   security_path_to_keystore=<path_to_keystore>
   # DO NOT CHANGE
   # SECURITY KEYSTORE PASSWORD
   # Required : No
   # Env variable : SECURITY_KEYSTORE_PASSWORD
   security_keystore_password=<password>
   ```

   サービスを再起動すると、Spark Job ServerはHTTPSで実行されます。
4. HTTPSで実行されているStreams RunnerとSpark Job Server間のSSL通信を有効にするには、次のいずれかを行います。
   * export JOBSERVER\_TRANSPORT\_PROTOCOL=httpsというコマンドでJOBSERVER\_TRANSPORT\_PROTOCOL環境変数を使用します。
   * &lt;Streams\_Runner\_installation\_path&gt;/conf/application.conf設定ファイルを編集し、app.svc.jobserver.protocolパラメーターの値をhttpsに設定します。

   環境変数を使用すると、application.conf設定がオーバーライドされます。
5. Spark Job Serverの認証またはその認証機関をStreams RunnerTrustStoreに追加するには、TrustStoreで使用されるファイル形式に従って、次の行を&lt;Streams\_Runner\_installation\_path&gt;/conf/application.confファイルに追加します。
   * .pemファイルの場合:
     ```
       play.ws.ssl {
         trustManager = {
           stores = [
             { type = "PEM", path = "/path/to/pem_file" }
           ]
         }
       }
     ```
   * .jksファイルの場合:
     ```
       play.ws.ssl {
         trustManager = {
           stores = [
             { type="JKS", path="/path/to/truststore", password="<password>"}
           ]
         }
       }
     ```

   詳細は、[Playドキュメンテーション](https://www.playframework.com/documentation/2.5.x/WsSSL) (英語のみ)をご覧ください。
6. HTTPSでStreams Runnerサービスを保護するには、&lt;Streams\_Runner\_installation\_path&gt;/conf/application.confファイルの次の行を編集して、認証のパスとパスワードを定義します。
   ```
   play.server.https.keyStore.path = <path_to_keystore>
   play.server.https.keyStore.password = <password>
   ```
7. 次の2行を編集してHTTPSポートを設定し、HTTPポートを無効にします。
   ```
   https.port=9443
   http.port=disabled
   ```

   9443は、HTTPS接続のデフォルトのポート値です。

   情報メモ警告: play.server.http.port=&lt;port&gt;設定はhttp.port=disabled設定と競合し、ポートは無効になりません。

   サービスを再起動すると、Streams RunnerはHTTPSで実行されます。
8. HTTPSで動作するTalend Data PreparationとStreams Runner間のSSL通信を有効にするためには、次のコマンドを使ってStreams Runner認証またはその認証機関を取得し、Talend Data PreparationTrustStoreに追加します。

   keytool -import -trustcacerts -alias &lt;cert-alias&gt; -file &lt;streams\_runner\_certificate.crt&gt; -keystore &lt;truststore.jks&gt;
9. &lt;Data\_Preparation\_Path&gt;/config/application.propertiesファイルで、次のプロパティを追加してストアを設定します。
   ```
   tls.trust-store=/path/to/<truststore.jks>
   tls.trust-store-password=<trust-store_password>

   false to disable hostname verification
   tls.verify-hostname=true
   ```
10. Talend Data Preparationを再起動します。

## タスクの結果

HTTPSで実行されているTalend Data Preparationインスタンスは、Streams RunnerおよびSpark Job Serverと通信でき、セキュアなHTTPS接続でも実行できます。