Talend JobServerでSSLを設定
SSLトランスポートの設定、Keystoreのセットアップ、暗号スイートの管理によって、Talend JobServerの通信チャンネルを暗号化および保護します。
手順
-
jobserver/agent/conf/TalendJobServer.propertiesファイルでSSLを有効にします。
org.talend.remote.jobserver.server.TalendJobServer.USE_SSL=true -
引き続き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 CenterとTalend Studio)は、クライアントの証明書がTalend JobServer Truststore内のエントリーと一致する証明書チェーンを保持しているKeystoreを定義する必要があります。
- サーバー側でorg.talend.remote.server.ssl.authenticate=falseの場合、クライアント認証は無効になり、クライアントKeystoreは何の効果も持たなくなります。
- サーバーKeystoreとクライアントTruststore: サーバーKeystoreは、サーバーのプライベートキーと証明書チェーンを保持しています。クライアントがサーバーのIDを検証できるよう、クライアントのTruststoreには、サーバーの署名付き証明書(keytool -exportを使ってサーバーKeystoreからエクスポートされたもの)、またはサーバーの証明書に署名した認証局(CA)証明書が含まれている必要があります。
-
クライアントの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=..."
-
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 -tlsEnabled 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 - サーバー:org.talend.remote.server.ssl.enabled.cipher.suitesプロパティを使って、暗号の排他的ポジティブリストを定義します:
- 特定の暗号スイートを無効にします:<root>/conf/TalendJobServer.propertiesファイルに、無効にする暗号のリストを追加します:
タスクの結果
以上で、SSLが有効化され、KeystoreとTruststoreの設定が行われ、暗号スイートが正常に管理されます。