メイン コンテンツをスキップする 補完的コンテンツへスキップ

Talend JobServerでSSLを設定

SSLトランスポートの設定、Keystoreのセットアップ、暗号スイートの管理によって、Talend JobServerの通信チャンネルを暗号化および保護します。

手順

  1. jobserver/agent/conf/TalendJobServer.propertiesファイルでSSLを有効にします。
    org.talend.remote.jobserver.server.TalendJobServer.USE_SSL=true
  2. 引き続きjobserver/agent/conf/TalendJobServer.propertiesファイルで、サーバーのKeystoreとTruststoreの設定を指定します。
    org.talend.remote.server.ssl.keyStore=<path_to_jobserver_keystore>
    org.talend.remote.server.ssl.keyStorePassword=<jobserver_keystore_password>
    org.talend.remote.server.ssl.trustStore=<path_to_jobserver_truststore>
    org.talend.remote.server.ssl.trustStorePassword=<jobserver_truststore_password>
    org.talend.remote.server.ssl.enabled.protocols=TLSv1.2,TLSv1.3
    org.talend.remote.server.ssl.authenticate=<true or false>
    情報メモ注: KeystoreとTruststoreについて:
    • サーバーKeystoreとクライアントTruststore: サーバーKeystoreは、サーバーのプライベートキーと証明書チェーンを保持しています。クライアントがサーバーのIDを検証できるよう、クライアントのTruststoreには、サーバーの署名付き証明書(keytool -exportを使ってサーバーKeystoreからエクスポートされたもの)、またはサーバーの証明書に署名した認証局(CA)証明書が含まれている必要があります。

      実行時に、クライアントのTLS(トランスポートレイヤーセキュリティ)スタックがサーバーの証明書を信頼できるかどうかを検証します。これを行うには、中間証明書を経由し、Truststoreで既に信頼されている証明書を見つけるまでサーバーの証明書チェーンを辿ります。この検証に失敗した場合、セキュアな接続(ハンドシェイク)は中断されます。つまり、クライアントはサーバーの証明書とTrustoreのエントリーが一致したときのみ接続することになります。

      クライアント側に指定されたTrustoreがない場合、クライアントは$JAVA_HOME/lib/security/cacertsにあるJVMのデフォルトのTruststoreを使用します。これは、クライアント側のorg.talend.remote.client.ssl.disablePeerTrustプロパティのデフォルトがfalseになっているためです。

    • サーバーTruststoreとクライアントKeystore: サーバーTruststoreは証明書ベースのクライアント認証で使用され、それによってサーバー によるクライアントKeystoreのID検証が確実になります。
      • org.talend.remote.server.ssl.authenticateプロパティがTrueに設定されている場合、Talend JobServerクライアント(Talend Administration CenterTalend Studio)は、クライアントの証明書がTalend JobServer Truststore内のエントリーと一致する証明書チェーンを保持しているKeystoreを定義する必要があります。
      • サーバー側でorg.talend.remote.server.ssl.authenticate=falseの場合、クライアント認証は無効になり、クライアントKeystoreは何の効果も持たなくなります。
  3. クライアントのKeystoreとTruststoreの設定を指定します。
    -Dorg.talend.remote.client.ssl.keyStore=<path_to_client_keystore>
    -Dorg.talend.remote.client.ssl.keyStorePassword=<client_keystore_password>
    -Dorg.talend.remote.client.ssl.trustStore=<path_to_client_truststore>
    -Dorg.talend.remote.client.ssl.trustStorePassword=<client_truststore_password>
    -Dorg.talend.remote.client.ssl.enabled.protocols=TLSv1.2,TLSv1.3
    -Dorg.talend.remote.client.ssl.disablePeerTrust=false
    • Talend Studioの場合は、studio/Talend-Studio-linux-gtk-x86_64.iniまたはstudio/Talend-Studio-gtk-aarch64.iniでこれらのシステムプロパティを 指定することをお勧めします。
    • Talend Administration CenterでJAVA_OPTS仕様を拡張するためには、tac/apache-tomcat/bin/setenv.shを使用できます:

      export JAVA_OPTS="$JAVA_OPTS -Xmx2048m -Dfile.encoding=UTF-8 -Dorg.talend.remote.client.ssl.keyStore=..."
  4. 既存のサーバーKeystoreファイルをオーバーライドします(オプション)。

    Keytoolユーティリティを使って、新しいサーバーKeystoreを生成し、サーバー側の場所を設定します。詳細は、カスタムのSSL Keystoreを設定(オプション)をご覧ください。

  5. SSL暗号スイートを管理します(オプション)。
    SSL暗号はセキュアな通信を確立するために使用される暗号化アルゴリズムです。一部の暗号スイートは他の暗号よりセキュリティのレベルが低いので、有効または無効にする暗号を指定したい場合もあります。

    SSL暗号スイートの管理には、ポジティブリストかネガティブリストのいずれかを使用できます:

    • 特定の暗号スイートを無効にします:<root>/conf/TalendJobServer.propertiesファイルに、無効にする暗号のリストを追加します:
      org.talend.remote.jobserver.server.TalendJobServer.DISABLED_CIPHER_SUITES=TLS_RSA_WITH_NULL_MD5,SSL_RSA_WITH_RC4_128_MD5,...
    • 特定の暗号スイート(ポジティブリスト)を有効にします:
      • サーバー:org.talend.remote.server.ssl.enabled.cipher.suitesプロパティを使って、暗号の排他的ポジティブリストを定義します:
        org.talend.remote.server.ssl.enabled.cipher.suites=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,...
      • クライアント:org.talend.remote.client.ssl.enabled.cipher.suitesプロパティを使って、暗号の排他的ポジティブリストを定義します:
        -Dorg.talend.remote.client.ssl.enabled.cipher.suites=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,...
      上の例で示した暗号スイートは、あくまでもデモンストレーションのためのものです。どの暗号スイートが組織のセキュリティ要件に適合するかについては、常にセキュリティチームに相談してください。
      Keytoolユーティリティを使えば、Talend JobServerを実行中であるマシンとそのクライアントのオペレーティングシステムでサポートされている暗号スイートを特定できます。次のコマンドを実行します:
      keytool -showinfo -tls
      次のように、サポートされている暗号スイートのリストが出力に表示されます:
      Enabled Protocols
      -----------------
      TLSv1.3
      TLSv1.2
      
      Enabled Cipher Suites
      ---------------------
      TLS_AES_256_GCM_SHA384
      TLS_AES_128_GCM_SHA256
      TLS_CHACHA20_POLY1305_SHA256
      TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
      TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
      ...
      <!-- Skipped for brevity -->
      ...
      TLS_RSA_WITH_AES_128_CBC_SHA
      TLS_EMPTY_RENEGOTIATION_INFO_SCSV

タスクの結果

以上で、SSLが有効化され、KeystoreとTruststoreの設定が行われ、暗号スイートが正常に管理されます。

カスタムのSSL Keystoreを設定(オプション)

必要であれば、別のサーバーKeystoreを選択することもできます。

About this task

既存のサーバーKeystoreファイルをオーバーライドする場合は、以下の操作が必要です:
  1. Keytool (キーおよび証明書管理ツール)と呼ばれるユーティリティツールを使って、新しいKeystoreを生成します。
  2. 新しいKeystoreの場所を設定します。
  3. サーバー側でSSL Keystoreを有効にします。

Keystoreを生成

Procedure

  1. ターミナルを開き、ディレクトリーを<root>/keystoresに変更します。ここで、<root>Talend JobServerパスを表します。
  2. keytool -genkey -keystore <myKeystoreName> -keyalg RSAと入力します。<myKeystoreName>は、作成しているKeystoreの名前を表します。
    コマンドインターフェイスでは、Keystoreパスワードを2回入力するようプロンプトが表示されます。
  3. Keystoreのパスワードを2回入力し、必要であればその他のオプション情報(名前、組織名、状態など)も入力します。
  4. yesと入力して情報を確認します。
  5. 以前に定義したパスワードを入力します。<root>/keystoresに新しいKeystoreファイルが作成されます。

新しいKeystoreの場所を設定

新しいKeystoreの場所を設定するには、JAVA_OPTS環境変数を編集するか、Talend JobServerの起動スクリプトを編集します。

Procedure

  1. JAVA_OPTS環境変数を編集
  2. 次の行を追加します。
    -Djavax.net.ssl.keyStore=/<myDirectory>/<myKeystore>
                               -Djavax.net.ssl.keyStorePassword=<myPassword>
    これらの行では、<myDirectory>はKeystoreのインストールディレクトリー、<myKeystore>はKeystoreの名前、<myPassword>は以前にKeystoreに定義したパスワードです。
    JAVA_OPTS環境変数をまだ作成していない場合は、この手順を完了させる前に作成する必要があります。
    次の画面のように、start_rs.shファイルの新しいKeystoreの場所を設定することもできます:

サービスの設定

Procedure

systemdベースのLinuxシステムにTalend JobServerをサービスとしてインストールの説明に従って、startコマンドとstopコマンドを使ってinitスクリプトを編集します。

What to do next

Talend RuntimeでSSL暗号を有効化の説明に従ってセキュアソケットレイヤーを有効にします。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。