# 轮换 Talend Studio 中的加密密钥

两个加密密钥现在被 Talend Studio、Talend Administration Center 和 Talend 组件用于通过 AES GCM 256 算法对密码进行加解密。

* system.encryption.key：用于对 Nexus 密码及connection\_user.properties 文件和 &lt;jobname&gt;\_&lt;jobversion&gt;.item 作业配置文件中的密码进行加解密。所有的 Studio 用户使用同一个工程时必需具有同一个系统加密密钥。
* routine.encryption.key: 用于构建和运行作业时对密码进行加解密。

信息注释警告： 我们强烈建议您在一个 Studio 上进行密钥轮换，如需要的话将新的密钥部署在 Talend Administration Center 和 Talend JobServer 上，然后将新的密钥分发给其它 Studio。

这两个密钥 system.encryption.key.v1 和 routine.encryption.key.v1 的默认值存储在加密密钥配置文件 /configuration/studio.keys 中，此文件在您首次运行 Talend Studio 可执行文件 Talend-Studio-linux-gtk-x86\_64 后在 Talend Studio 的安装目录下创建。以下为新创建的 studio.keys 文件的示例。

```
system.encryption.key.v1=ObIr3Je6QcJuxJEwErWaFWIxBzEjxIlBrtCPilSByJI\=
routine.encryption.key.v1=YBoRMn8gwD1Kt3CcowOiGeoxRbC2eNNVm7Id6vA3hrk\=
```

如果未使用默认的系统加密密钥为任何密码加解密，您可以通过删除其默认值并重启 Talend Studio 来修改加密密钥的值，如上例中的 ObIr3Je6QcJuxJEwErWaFWIxBzEjxIlBrtCPilSByJI\=。

无法修改默认例程加密密钥值。如果您已经登录工程，Talend 允许您通过在加密密钥配置文件中添加新版本的密钥来轮换加密密钥。

请注意，新版本的系统加密密钥只有在您修改并保存作业后才能对作业生效。

## 关于此任务

以下过程为您显示了如何轮换加密密钥。

## 步骤

1. 打开 Talend Studio 安装目录下的密钥配置文件 /configuration/studio.keys。
2. 通过添加以下行，添加一个具有空值的新加密密钥版本：
   * 对于系统加密密钥：
     ```
     system.encryption.key.v<version_number>=
     ```
   * 对于例程加密密钥：
     ```
     routine.encryption.key.v<version_number>=
     ```

   其中，&lt;version\_number&gt; 是一个代表新加密密钥版本的简单整数并且应该高于任何现有的版本号，例如，
   ```
   system.encryption.key.v2=
   routine.encryption.key.v2=
   ```

   信息注释警告： 任何先前版本的加密密钥如果已经用于加密某个密码，则不得将其删除。
3. 保存密钥配置文件并重新启动您的 Talend Studio。

   随即将会生成新版本的加密密钥值，且密钥配置文件将会保存该值。
4. 如果您在轮换例程加密密钥且您的作业被部署到到 Talend JobServer 运行，请将 Talend Studio 的密钥配置文件复制到安装 Talend JobServer 的服务器上，并在 Talend JobServer 上设置 JVM 参数 -Dencryption.keys.file。

   更多信息请参阅 [Set a JVM property for all the Jobs executed by a JobServer on Windows / Linux](https://community.talend.com/s/article/Set-a-JVM-property-for-all-the-Jobs-executed-by-a-JobServer-on-Windows-pr7Wl?language=en_US) （仅提供英文版本） (仅提供英文版)。
5. 如果您在轮换系统加密密钥且您正工作于一个远程工程，请为 Talend Administration Center 设置相同的加密密钥。
   1. 将 Talend Studio 的密钥配置文件复制到服务器上安装 Talend Administration Center 的目录，例如 D:/StudioKeys。
   2. 打开 Talend Administration Center 的安装目录下面的文件 &lt;TomcatPath&gt;/bin/catalina.sh。
   3. 在该文件开头添加以下行：
      ```
      JAVA_OPTS="-Dencryption.keys.file=/d/StudioKeys/studio.keys"
      ```
6. 如果您在轮换例程加密密钥且您的作业被部署到到 Talend Administration Center 中的 Job Conductor 上运行，请将 Talend Studio 的密钥配置文件复制到安装 Talend Administration Center 的服务器上，并在 Talend Administration Center 中为相应的任务设置 JVM 参数 -Dencryption.keys.file。

   有关如何在 Talend Administration Center 中为某个任务设置 JVM 参数的更多信息，请参阅 [Setting JVM parameters for specific tasks (英文版)](https://help.qlik.com/talend/r/en-US/7.3/administration-center-user-guide/set-jvm-parameters-for-specific-tasks-in-tac)。
7. 重新启动您的 Talend Administration Center 以进行任何重新配置。