跳到主要内容 跳到补充内容

Talend JobServer 配置 SSL

配置 SSL 传输、设置密钥库和管理密码套件,以加密和保护您 Talend JobServer 的通信信道。

步骤

  1. jobserver/agent/conf/TalendJobServer.properties 文件中启用 SSL。
    org.talend.remote.jobserver.server.TalendJobServer.USE_SSL=true
  2. 仍然在jobserver/agent/conf/TalendJobServer.properties 文件中,为服务器指定密钥库和信任库设置。
    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>
    信息注释注: 关于密钥库和信任库:
    • 服务器密钥库和客户端信任库:服务器密钥库保存服务器的私钥和证书链。客户端信任库必须包含服务器的签名证书(使用 keytool -export 从服务器密钥库导出)或签署服务器证书的证书颁发机构 (CA) 证书,以便客户端可以验证服务器的身份。

      在运行时,客户端的 TLS(传输层安全)堆栈验证它是否可以信任服务器的证书。为此,它沿着服务器的证书链,通过任何中间证书,直到在其信任库中找到已受信任的证书。如果此验证失败,则安全连接(握手)将中止。换句话说,客户端只有在将服务器的证书与其信任库中的条目匹配时才会连接。

      如果客户端没有指定信任库,客户端将从 $JAVA_HOME/lib/security/cacerts 使用其 JVM 的默认信任库。这是因为客户端的 org.talend.remote.client.ssl.disablePeerTrust 属性默认为 false

    • 服务器信任库和客户端密钥库:服务器信任库用于基于证书的客户端授权,确保服务器验证客户端密钥库的身份。
      • 如果属性 org.talend.remote.server.ssl.authenticate 设置为 true,则 Talend JobServer 客户端(Talend Administration CenterTalend Studio)必须必须定义一个密钥库,其中包含一个证书链,客户端的证书通过该证书链与 Talend JobServer 信任库中的条目相匹配。
      • 如果服务器上的 org.talend.remote.server.ssl.authenticate=false ,则客户端授权被禁用,客户端密钥库无效。
  3. 为客户端指定密钥库和信任库设置。
    -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.inistudio/Talend-Studio-gtk-aarch64.ini 中指定这些系统属性。
    • 对于 Talend Administration Center,您可以使用 tac/apache-tomcat/bin/setenv.sh 来扩展 JAVA_OPTS 规范:

      export JAVA_OPTS="$JAVA_OPTS -Xmx2048m -Dfile.encoding=UTF-8 -Dorg.talend.remote.client.ssl.keyStore=..."
  4. 覆盖现有的服务器密钥库文件(可选)。

    使用 Keytool 实用程序生成新的服务器密钥库,并在服务器端设置位置。更多详细信息,请参阅配置自定义 SSL 密钥库(可选)

  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 已启用,密钥库和信任库设置已配置,密码套件已成功得到管理。

配置自定义 SSL 密钥库(可选)

如果需要,您可以选择另一个服务器密钥库。

About this task

要覆盖现有的服务器密钥库文件,您必须:
  1. 使用名为 Keytool (密钥和证书管理工具) 的实用程序工具来生成新的密钥库。
  2. 设置新的密钥库位置。
  3. 在服务器端启用 SSL 密钥库。

生成密钥库

Procedure

  1. 打开终端并将目录切换到 <root>/keystores,其中 <root>Talend JobServer 路径。
  2. 键入 keytool -genkey -keystore <myKeystoreName> -keyalg RSA,其中 <myKeystoreName> 是指您正在创建的密钥库的名称。
    在命令界面中,系统会提示您输入两次密钥库密码。
  3. 输入您的密钥库的密码两次,然后根据需要输入其他可选信息,例如您的姓名、您的组织名称、您所在的州/省。
  4. 键入 yes 以确认您的信息。
  5. 键入您在前面定义的密码。新的密钥库文件已在 <root>/keystores 中创建。

设置新密钥库的位置

要设置新密钥库位置,您可以编辑 JAVA_OPTS 环境变量或编辑 Talend JobServer 的启动脚本。

Procedure

  1. 编辑 JAVA_OPTS 环境变量
  2. 添加以下行:
    -Djavax.net.ssl.keyStore=/<myDirectory>/<myKeystore>
                               -Djavax.net.ssl.keyStorePassword=<myPassword>
    在这些行中,<myDirectory> 是密钥库的安装目录,<myKeystore> 是密钥库的名称,<myPassword> 是您先前为密钥库定义的密码。
    如果您尚未创建 JAVA_OPTS 环境变量,必须在完成此过程之前创建它。
    还可以在 start_rs.sh 文件中设置新密钥库的位置,如下面的截图所示:

配置服务

Procedure

使用 startstop 命令编辑 init 脚本,如 在基于 systemd 的 Linux 系统下将 Talend JobServer 安装为服务 中所述。

What to do next

在 Talend Runtime 中启用 SSL 加密 中所述启用安全套接字层。

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们!