Đị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ư Apigee cho lưu lượng truy cập về hướng nam (lưu lượng truy cập giữa Bộ xử lý tin nhắn 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 bản cập nhật JDK 8u261.

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

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

Tính năng TLS 1.3 đã được giới thiệu trong các phiên bản Java sau:

  • Oracle JDK 8u261
  • MởJDK 8u272

Trong các phiên bản Java sau, 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 các vai trò ứng dụng:

  • Oracle JDK 8u261 trở lên nhưng thấp 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 những phiên bản như vậy, bạn cần bật TLS phiên bản 1.3, như mô tả trong bài viết Cách bật TLS phiên bản 1.3 khi TLS phiên bản này không được bật theo mặc định.

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

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

Để TLS phiên bản 1.3 hoạt động, tất cả những điều sau phải đúng:

  • Java cơ sở trên Bộ 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 Bộ xử lý thư.
  • TLS phiên bản 1.3 phải được bật trong ứng dụng Bộ xử lý thư.

Cách bật TLS phiên bản 1.3 trong Java khi dịch vụ này 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 phiên bản Java sau:

  • Oracle JDK 8u261 trở lên nhưng thấp 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 đặt thuộc tính Java jdk.tls.client.protocols. Các giá trị được phân tách bằng dấu phẩy và có thể chứa một hoặc nhiều giá trị 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 các giao thức ứng dụng TLSv1.2TLSv1.3.

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

Để bật các giao thức TLS v1, v1.1, v1.2 và v1.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 Bộ xử lý thư.
>

Cách tắt TLS phiên bản 1.3 khi TLS được bật theo mặc định

Nếu bạn đang dùng Oracle JDK 8u341 trở lên hoặc OpenJDK 8u352 trở lên, thì TLSv1.3 sẽ được bật theo mặc định cho máy khách. Nếu muốn tắt TLS phiên bản 1.3 trong các trường hợp như vậy, bạn có hai cách:

  • Định cấu hình SSLInfo của máy chủ đích 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 điểm mục tiêu TLS/SSL. Lưu ý: Nếu không có giao thức nào được chỉ định trong cấu hình máy chủ đích, thì bất kỳ giao thức nào được Java hỗ trợ đều sẽ được gửi dưới dạng tuỳ chọn trong giao thức 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 Bộ xử lý thư.

Kiểm tra phiên bản Java trong Bộ xử lý thư

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

java -version

Kết quả mẫu bên dưới 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 mình có hỗ trợ TLS phiên bản 1.3 và ít nhất một trong các thuật toán mật mã ở trên hay không theo bên dưới. Xin lưu ý rằng ví dụ này sử dụng 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