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 hướng nam (lưu lượng truy cập giữa Bộ xử lý thông báo 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à các 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, tính năng TLS phiên bản 1.3 có tồn tại nhưng không được bật theo mặc định trong 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 các phiên bản này, bạn cần bật TLS phiên bản 1.3, như mô tả trong phần Cách bật TLS phiên bản 1.3 khi phiên bản này 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, thì TLS phiên bản 1.3 đã được bật theo mặc định trong vai trò ứng dụng (Bộ xử lý thông báo đóng vai trò là ứng dụng cho các kết nối TLS hướng nam), vì vậy, bạn không cần làm gì cả:
- 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 đây phải đúng:
- Java cơ bản trên Bộ xử lý thông báo phải hỗ trợ TLS phiên bản 1.3.
- Bạn phải bật TLS phiên bản 1.3 trong Java trên Bộ xử lý thông báo.
- Bạn phải bật TLS phiên bản 1.3 trong ứng dụng Bộ xử lý thông báo.
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 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.3 và
SSLv3.
Ví dụ: việc đặt -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 sẽ bật các giao thức ứng dụng TLSv1.2 và TLSv1.3.
Hãy xem phần Thay đổi các thuộc tính JVM khác để tìm hiểu cách đặt thuộc tính JVM trong một thành phần Edge.
Cách bật giao thức TLS phiên bản 1, 1.1, 1.2 và 1.3:
- Đặt cấu hình sau trong tệp cấu hình của 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
- Khởi động lại Bộ xử lý thông báo.
Cách tắt TLS phiên bản 1.3 khi phiên bản này đượ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, thì TLSv1.3 sẽ được bật theo mặc định cho ứng dụng. Nếu muốn tắt 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 TargetEndpoint 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ủ mục tiêu, thì mọi giao thức được Java hỗ trợ sẽ được gửi dưới dạng các tuỳ chọn trong quá trình bắt tay của ứng dụng.
- Tắt TLS phiên bản 1.3 trong bộ xử lý thông báo bằng cách tắt hoàn toàn giao thức. Xem bài viết Thiết lập giao thức TLS trên Bộ xử lý thông báo.
Kiểm tra phiên bản Java trong Bộ xử lý thông báo
Để 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 Bộ 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)
Mật mã được hỗ trợ
Hiện tại, Java 8 hỗ trợ 2 thuật toán mật mã TLS phiên bản 1.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ó hỗ trợ TLS phiên bản 1.3 và ít nhất một trong các thuật toán mã hoá nêu trên hay không bằng cách sử dụng lệnh 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