本頁面說明如何在 Apigee 訊息處理器 (訊息處理器與後端伺服器之間流量) 中,針對南方流量設定 TLS 1.3。
如要進一步瞭解 Java 中的 TLS 1.3 功能,請參閱「JDK 8u261 更新版本資訊」。
啟用 TLS 1.3 的程序會因您使用的 Java 版本而異。請參閱下方的 在訊息處理器中查看 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 1.3 版,因此您不需要採取任何行動:
- Oracle JDK 8u341 以上版本
- OpenJDK 8u352 以上版本
為了讓 TLS v1.3 正常運作,下列所有條件都必須符合:
- 訊息處理器的基礎 Java 必須支援 TLS 1.3 版。
- 郵件處理器必須透過 Java 啟用 TLS v1.3。
- 必須在郵件處理器應用程式中啟用 TLS v1.3。
如何在 Java 中啟用 TLS v1.3 (如果預設未啟用)。
本節說明如何在使用以下任一版本的 Java 時啟用 TLS 1.3 版:
- 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
。
如要瞭解如何在 Edge 元件中設定 JVM 屬性,請參閱「變更其他 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 以上版本,系統會預設為用戶端啟用 TLSv1.3。如果您希望停用 TLS 1.3 版,有以下兩種方法:
- 設定目標伺服器的 SSLInfo,並確認通訊協定清單中不會提及 TLSv1.3。請參閱 TLS/SSL 目標端點設定元素。注意:如果目標伺服器設定中未指定通訊協定,則 Java 支援的所有通訊協定都會做為用戶端握手中的選項傳送。
- 徹底停用通訊協定,藉此停用郵件處理器中的 TLS v1.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 版和上述至少一種加密方式。請注意,這個範例使用已啟用 TLS v1.3 的 openssl11
公用程式。
$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3