設定南端流量的 TLS 1.3

本頁面說明如何在 Apigee 訊息處理器中,為南向流量設定 TLS 1.3 (訊息處理器與後端伺服器之間的流量)。

如要進一步瞭解 Java 的 TLS 1.3 功能,請參閱 JDK 8u261 更新版本資訊

啟用 TLS 1.3 的程序取決於您使用的 Java 版本。詳情請見 檢查下方的訊息處理器中的 Java 版本,找出已安裝的 Java 版本 。

TLS 1.3 版和 Java 版本

下列 Java 版本導入了 TLS 1.3 功能:

  • Oracle JDK 8u261
  • OpenJDK 8u272

下列 Java 版本提供 TLS 1.3 版功能,但功能並未預設為啟用 客戶角色:

  • Oracle JDK 8u261 以上版本 (但低於 Oracle JDK 8u341)
  • OpenJDK 8u272 以上版本 (但低於 OpenJDK 8u352)

如果您使用上述其中一個版本,必須按照說明啟用 TLS 1.3 版 請參閱「如何在不預設啟用 TLS 1.3 版的情況下啟用 TLS」一節。

如果您使用的是下列任一版本,系統預設會啟用 TLS v1.3 客戶職務 (「訊息處理者」做為「客戶」) 連線目標),因此您不必採取任何行動:

  • Oracle JDK 8u341 以上版本
  • OpenJDK 8u352 以上版本

如要讓 TLS v1.3 正常運作,符合下列所有條件:

  • 訊息處理器上的 Java 必須支援 TLS 1.3 版。
  • 訊息處理器必須在 Java 中啟用 TLS 1.3 版。
  • 訊息處理者應用程式中必須啟用 TLS 1.3 版。

如何在未預設啟用的情況下,在 Java 中啟用 TLS 1.3 版。

本節說明如何在使用下列服務時啟用 TLS 1.3 版 Java 版本:

  • Oracle JDK 8u261 以上版本 (但低於 Oracle JDK 8u341)
  • OpenJDK 8u272 以上版本 (但低於 OpenJDK 8u352)

在訊息處理工具中設定 Java 屬性 jdk.tls.client.protocols。 值之間以半形逗號分隔,可包含一或多個 TLSv1TLSv1.1TLSv1.2TLSv1.3SSLv3

舉例來說,設定 -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 會啟用用戶端 通訊協定 TLSv1.2TLSv1.3

請參閱變更其他 JVM 屬性 瞭解如何在 Edge 元件中設定 JVM 屬性。

如要啟用 TLS v1、v1.1、v1.2 和 v1.3 通訊協定:

  1. 進行以下設定: 訊息處理器設定檔 (/opt/apigee/customer/application/message-processor.properties):
       bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
  2. 重新啟動訊息處理器。
>

如何在預設啟用的 TLS 1.3 版的情況下停用

如果您使用 Oracle JDK 8u341 以上版本或 OpenJDK 8u352 以上版本,系統會透過以下方式啟用 TLSv1.3: 為用戶端設定預設值 如要停用 TLS v1.3,您可以採用以下兩種方法:

  • 設定目標伺服器的 SSLInfo,並確保標記中未提及 TLSv1.3 通訊協定清單詳情請見 TLS/SSL 目標端點設定元素注意:如未在目標伺服器設定中指定通訊協定,系統會 Java 支援的通訊協定會在用戶端握手時以選項形式傳送。
  • 完全停用通訊協定,藉此停用訊息處理工具中的 TLS 1.3 版。詳情請見 在郵件處理器設定 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 1.3 版和至少一個 上述指令請注意,本範例使用的 openssl11 公用程式具有 TLS 1.3 版已啟用。

$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3