本页面介绍了如何在 Apigee 消息处理器中为南向流量配置 TLS 1.3 (消息处理器和后端服务器之间的流量)。
如需详细了解 Java 中的 TLS 1.3 功能,请参阅 JDK 8u261 更新版本说明。
启用 TLS 1.3 的过程取决于您所使用的 Java 版本。请参阅 <ph type="x-smartling-placeholder"></ph> 查看下方消息处理器中的 Java 版本,找到安装的 Java 版本 。
TLS v1.3 和 Java 版本
以下版本的 Java 中引入了 TLS 1.3 功能:
- Oracle JDK 8u261
- OpenJDK 8u272
以下 Java 版本提供 TLS v1.3 功能,但该功能默认不启用 以下角色:
- Oracle JDK 8u261 或更高版本,但版本低于 Oracle JDK 8u341
- OpenJDK 8u272 或更高版本,但版本低于 OpenJDK 8u352
如果您使用的是上述某个版本,则需要按照说明启用 TLS v1.3 如何在默认处于停用状态时启用 TLS v1.3。
如果您使用的是以下某个版本,TLS v1.3 应该已经默认处于启用状态 客户端角色(消息处理方充当客户端 因此您无需采取任何操作:
- Oracle JDK 8u341 或更高版本
- OpenJDK 8u352 或更高版本
为使 TLS v1.3 正常运行,必须满足以下所有条件:
- 消息处理器上的底层 Java 必须支持 TLS v1.3。
- 必须在邮件处理器上的 Java 中启用 TLS v1.3。
- 必须在邮件处理器应用中启用 TLS v1.3。
如何在 Java 中默认启用 TLS v1.3 时启用该功能。
本部分介绍了在您使用以下其中一项时如何启用 TLS v1.3 Java 版:
- Oracle JDK 8u261 或更高版本,但版本低于 Oracle JDK 8u341
- OpenJDK 8u272 或更高版本,但版本低于 OpenJDK 8u352
在消息处理器中,设置 Java 属性 jdk.tls.client.protocols
。
值以英文逗号分隔,可包含一个或多个值
TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
和
SSLv3
。
例如,设置 -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3
会启用客户端
协议 TLSv1.2
和 TLSv1.3
。
请参阅更改其他 JVM 属性 了解如何在 Edge 组件中设置 JVM 属性。
如需启用 TLS v1、v1.1、v1.2 和 v1.3 协议,请执行以下操作:
- 在
消息处理器配置文件
(
/opt/apigee/customer/application/message-processor.properties
):bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
- 重启消息处理器。
如何在默认启用的 TLS v1.3 中停用它
如果您使用的是 Oracle JDK 8u341 或更高版本,或者 OpenJDK 8u352 或更高版本, 客户端的默认设置 在这种情况下,如果您想停用 TLS v1.3,有以下两种选择:
- 配置目标服务器的 SSLInfo 并确保 TLSv1.3 未出现在 协议列表。请参阅 <ph type="x-smartling-placeholder"></ph> TLS/SSL TargetEndpoint 配置元素中所述。 注意:如果目标服务器配置中未指定协议, 哪些协议将在客户端握手时作为选项发送。
- 通过完全停用协议,在消息处理器中停用 TLS v1.3。请参阅 <ph type="x-smartling-placeholder"></ph> 设置邮件处理器上的 TLS 协议。
检查消息处理器中的 Java 版本
要检查消息处理器中安装的 Java 版本,请登录消息处理器 节点并执行以下命令:
java -version
以下示例输出显示已安装 OpenJDK 8u312。
$ java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
支持的加密方式
目前,Java 8 支持 2 种 TLS v1.3 加密:
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
您可以使用 openssl
来检查目标服务器是否支持 TLS v1.3 以及以下至少一个
使用下面的密码。请注意,此示例使用的是 openssl11
实用程序,该实用程序具有
已启用 TLS v1.3。
$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3