本頁面說明如何在 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
。
值之間以半形逗號分隔,可包含一或多個
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 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