Định cấu hình TLS 1.3 cho lưu lượng truy cập hướng nam

Trang này giải thích cách định cấu hình TLS 1.3 trong Bộ xử lý thông báo Apigee cho lưu lượng truy cập đi hướng nam (lưu lượng truy cập giữa Trình xử lý thư và máy chủ phụ trợ).

Để tìm hiểu thêm về tính năng TLS 1.3 trong Java, hãy xem Ghi chú phát hành cập nhật JDK 8u261.

Quy trình bật TLS 1.3 tuỳ thuộc vào phiên bản Java bạn đang sử dụng. Xem Kiểm tra phiên bản Java trong Trình xử lý thông báo bên dưới để tìm phiên bản Java đã cài đặt trong Trình xử lý thư.

TLS phiên bản 1.3 và phiên bản Java

Tính năng TLS 1.3 được ra mắt trong các phiên bản Java sau:

  • Oracle JDK 8u261
  • OpenJDK 8u272

Trong các phiên bản Java sau đây, tính năng TLS phiên bản 1.3 tồn tại nhưng không được bật theo mặc định trong vai trò của khách hàng:

  • Oracle JDK 8u261 trở lên nhưng ít hơn Oracle JDK 8u341
  • OpenJDK 8u272 trở lên nhưng thấp hơn OpenJDK 8u352

Nếu đang sử dụng một trong các phiên bản này, bạn cần bật TLS phiên bản 1.3 theo mô tả trong bài viết Cách bật TLS phiên bản 1.3 khi TLS không được bật theo mặc định.

Nếu bạn đang sử dụng một trong các phiên bản sau, TLS phiên bản 1.3 phải được bật theo mặc định ở vai trò của khách hàng (Người xử lý thư đóng vai trò như một khách hàng cho kết nối TLS phía nam), nên bạn không cần phải làm gì:

  • Oracle JDK 8u341 trở lên
  • OpenJDK 8u352 trở lên

Để TLS phiên bản 1.3 hoạt động, bạn phải đáp ứng tất cả các yêu cầu sau:

  • Java cơ bản trên Trình xử lý thư phải hỗ trợ TLS phiên bản 1.3.
  • TLS phiên bản 1.3 phải được bật trong Java trên Trình xử lý thư.
  • Bạn phải bật TLS phiên bản 1.3 trong ứng dụng Trình xử lý thư.

Cách bật TLS phiên bản 1.3 trong Java khi TLS không được bật theo mặc định.

Phần này giải thích cách bật TLS phiên bản 1.3 trong trường hợp bạn đang sử dụng một trong các nền tảng sau phiên bản Java:

  • Oracle JDK 8u261 trở lên nhưng ít hơn Oracle JDK 8u341
  • OpenJDK 8u272 trở lên nhưng thấp hơn OpenJDK 8u352

Trong trình xử lý thông báo, hãy thiết lập thuộc tính Java jdk.tls.client.protocols. Giá trị được phân tách bằng dấu phẩy và có thể chứa một hoặc nhiều TLSv1, TLSv1.1, TLSv1.2, TLSv1.3SSLv3.

Ví dụ: việc thiết lập -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 sẽ bật ứng dụng giao thức TLSv1.2TLSv1.3.

Xem phần Thay đổi khác Thuộc tính JVM sang tìm hiểu cách đặt thuộc tính JVM trong thành phần Edge.

Cách bật giao thức TLS phiên bản 1, phiên bản 1.1, phiên bản 1.2 và phiên bản 1.3:

  1. Đặt cấu hình sau trong tệp cấu hình trình xử lý thông báo (/opt/apigee/customer/application/message-processor.properties):
       bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
  2. Khởi động lại Trình xử lý thư.
>

Cách vô hiệu hoá TLS phiên bản 1.3 khi TLS được bật theo mặc định

Nếu bạn đang sử dụng Oracle JDK 8u341 trở lên hoặc OpenJDK 8u352 trở lên, TLSv1.3 được bật bằng mặc định cho khách hàng. Nếu muốn vô hiệu hoá TLS phiên bản 1.3 trong những trường hợp như vậy, bạn có hai lựa chọn:

  • Định cấu hình SSLInfo của máy chủ mục tiêu và đảm bảo rằng TLSv1.3 không được đề cập trong danh sách giao thức. Xem Phần tử cấu hình TLS/SSL TargetEndpoint. Lưu ý: Nếu không có giao thức nào được chỉ định trong cấu hình máy chủ mục tiêu, thì các giao thức được Java hỗ trợ sẽ được gửi dưới dạng tuỳ chọn trong cơ chế bắt tay ứng dụng.
  • Tắt TLS phiên bản 1.3 trong trình xử lý thư bằng cách tắt hoàn toàn giao thức. Xem Thiết lập giao thức TLS trên Trình xử lý thư.

Kiểm tra phiên bản Java trong Trình xử lý thông báo

Để kiểm tra phiên bản Java được cài đặt trong Trình xử lý thư, hãy đăng nhập vào Trình xử lý thư nút và thực thi lệnh sau:

java -version

Kết quả mẫu dưới đây cho thấy OpenJDK 8u312 đã được cài đặt.

$ 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)

Thuật toán mật mã được hỗ trợ

Hiện tại, Java 8 hỗ trợ 2 thuật toán mật mã TLS v1.3:

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

Bạn có thể sử dụng openssl để kiểm tra xem máy chủ đích của bạn có hỗ trợ TLS phiên bản 1.3 hay không và có ít nhất một trong các thuật toán mật mã ở trên bằng cách sử dụng bên dưới. Lưu ý rằng ví dụ này sử dụng phần mềm tiện ích openssl11 Đã bật TLS phiên bản 1.3.

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