Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu Apigee X. thông tin
Chỉ báo tên máy chủ (SNI) cho phép nhiều máy chủ phụ trợ HTTPS được phân phát từ cùng một địa chỉ IP và cổng mà không yêu cầu các máy chủ phụ trợ đó sử dụng cùng một chứng chỉ TLS. Đây là một phần mở rộng của giao thức TLS. Khi SNI được bật trên một ứng dụng, ứng dụng sẽ truyền tên máy chủ của máy chủ phụ trợ trong quá trình bắt tay TLS ban đầu. Điều này cho phép máy chủ TLS xác định chứng chỉ TLS nào nên được dùng để xác thực yêu cầu từ ứng dụng.
Theo mặc định, SNI bị vô hiệu hoá trên thành phần Message Processor trong Edge cho Đám mây riêng tư để đảm bảo khả năng tương thích ngược với các máy chủ phụ trợ hiện có. Nếu máy chủ phụ trợ của bạn được định cấu hình để hỗ trợ SNI, thì bạn cần bật SNI trên thành phần Message Processor. Nếu không, các yêu cầu API thông qua Apigee Edge sẽ không thành công với TLS Handshake Failures (Lỗi bắt tay TLS).
Tài liệu này giải thích cách thực hiện những thao tác sau:
- Xác định xem máy chủ phụ trợ có bật SNI hay không
- Bật SNI trên Trình xử lý thông báo để giao tiếp với các máy chủ phụ trợ hỗ trợ SNI
- Tắt SNI trên Message Processor nếu cần
- Xác minh rằng cấu hình SNI đã được cập nhật thành công trên Message Processors
Trước khi bắt đầu
- Nếu bạn chưa quen với SNI, hãy đọc bài viết Sử dụng SNI với edge.
- Nếu bạn chưa quen với việc định cấu hình Edge trên Đám mây riêng tư, hãy đọc bài viết Cách định cấu hình Edge.
Xác định máy chủ đã bật SNI
Phần này mô tả cách xác định xem máy chủ phụ trợ có được bật SNI hay không.
-
Thực thi lệnh
opensslvà cố gắng kết nối với tên máy chủ có liên quan (Bộ định tuyến biên hoặc máy chủ phụ trợ) mà không truyền tên máy chủ, như minh hoạ dưới đây:openssl s_client -connect hostname:port
-
Bạn có thể nhận được các chứng chỉ và đôi khi có thể thấy lỗi bắt tay trong lệnh
openssl, như minh hoạ dưới đây:
CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
-
Thực thi lệnh
opensslvà thử kết nối với tên máy chủ có liên quan (Bộ định tuyến biên hoặc máy chủ phụ trợ) bằng cách truyền tên máy chủ như minh hoạ dưới đây:openssl s_client -connect hostname:port -servername hostname
- Nếu bạn gặp lỗi bắt tay ở bước 1 hoặc nhận được các chứng chỉ khác nhau ở bước 1 và bước 2, thì điều đó có nghĩa là Máy chủ được chỉ định đã bật SNI.
- Nếu muốn xác minh cho nhiều máy chủ phụ trợ, bạn cần lặp lại các bước trên cho từng máy chủ phụ trợ.
Nếu phát hiện thấy một hoặc nhiều máy chủ phụ trợ có bật SNI, thì bạn cần bật SNI trên thành phần Message Processor (Trình xử lý thông báo) như giải thích bên dưới. Nếu không, các yêu cầu API thông qua Apigee Edge sẽ không thành công kèm theo Lỗi bắt tay TLS.
Bật SNI giữa Trình xử lý thông báo Edge và máy chủ phụ trợ
Phần này giải thích cách bật SNI giữa Trình xử lý thông báo Edge và máy chủ phụ trợ. Bạn có thể bật SNI thông qua thuộc tính jsse.enableSNIExtension trên thành phần Message Processor. Để định cấu hình bất kỳ thuộc tính nào trên Trình xử lý thông báo, hãy sử dụng mã thông báo theo cú pháp được mô tả trong phần Cách định cấu hình Edge.
Để bật SNI trên Trình xử lý thông báo, hãy thực hiện các bước sau:
Tìm mã thông báo cho tài sản jsse.enableSNIExtension
Các bước sau đây mô tả cách xác định vị trí mã thông báo cho thuộc tính jsse.enableSNIExtension:
-
Tìm thuộc tính
jsse.enableSNIExtensiontrong thư mục nguồn Message Processor/opt/apigee/edge-message-processor/sourcebằng lệnh sau:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
Kết quả của lệnh này cho thấy mã thông báo cho thuộc tính
jsse.enableSNIExtensioncủa Message Processor như sau:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}Trong đó, chuỗi giữa các thẻ
{T}{/T}là tên của mã thông báo mà bạn có thể đặt trong tệp.propertiescủa Trình xử lý thông báo.Do đó, mã thông báo cho thuộc tính
jsse.enableSNIExtensionsẽ như sau:conf_system_jsse.enableSNIExtension
Bật SNI trên Trình xử lý tin nhắn
Các bước sau đây mô tả cách bật SNI trên thành phần Trình xử lý thông báo Apigee.
- Trên máy Xử lý tin nhắn, hãy mở tệp sau trong một trình chỉnh sửa. Nếu chưa có, hãy tạo tệp này.
/opt/apigee/customer/application/message-processor.properties
Ví dụ: để mở tệp bằng
vi, hãy nhập lệnh sau:vi /opt/apigee/customer/application/message-processor.properties
-
Thêm một dòng theo định dạng sau vào tệp thuộc tính:
conf_system_jsse.enableSNIExtension=true
- Lưu thay đổi.
-
Đảm bảo tệp thuộc tính này thuộc sở hữu của người dùng
apigeenhư minh hoạ dưới đây:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Khởi động lại Trình xử lý tin nhắn như minh hoạ dưới đây:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Xác minh rằng cấu hình SNI đã được cập nhật trên Trình xử lý thông báo.
- Nếu bạn có nhiều Trình xử lý thông báo, hãy lặp lại các bước trên trên tất cả Trình xử lý thông báo.
Tắt SNI giữa Bộ xử lý thông báo Edge và máy chủ phụ trợ
Thông thường, bạn sẽ không gặp phải vấn đề nào sau khi bật SNI. Tuy nhiên, nếu gặp bất kỳ vấn đề nào về kết nối giữa Trình xử lý thông báo Edge và máy chủ phụ trợ sau khi bật SNI, bạn có thể tắt SNI bất cứ lúc nào bằng cách thực hiện các bước sau.
Bạn có thể tắt SNI bằng cách đặt thuộc tính jsse.enableSNIExtension trở lại false trên thành phần Message Processor.
Tắt SNI trên Trình xử lý thông báo
Các bước sau đây mô tả cách tắt SNI trên Trình xử lý thông báo Apigee.
-
Trên máy Xử lý tin nhắn, hãy mở tệp sau trong một trình chỉnh sửa. Nếu chưa có, hãy tạo tệp này.
/opt/apigee/customer/application/message-processor.properties
Ví dụ: để mở tệp bằng
vi, hãy nhập lệnh sau:vi /opt/apigee/customer/application/message-processor.properties
-
Nếu dòng
conf_system_jsse.enableSNIExtension=truecó trong/opt/apigee/customer/application/message-processor.properties, hãy sửa đổi dòng đó như sau:conf_system_jsse.enableSNIExtension=false
- Lưu thay đổi.
-
Đảm bảo tệp thuộc tính này thuộc sở hữu của người dùng
apigeenhư minh hoạ dưới đây:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Khởi động lại Trình xử lý tin nhắn như minh hoạ dưới đây:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Xác minh rằng cấu hình SNI đã được cập nhật trên Trình xử lý thông báo.
- Nếu bạn có nhiều Trình xử lý tin nhắn, hãy lặp lại các bước trên cho tất cả Trình xử lý tin nhắn.
Xác minh cấu hình SNI trên Trình xử lý thư
Phần này giải thích cách xác minh rằng bạn đã cập nhật thành công cấu hình SNI trên Trình xử lý thông báo.
Mặc dù bạn sử dụng mã thông báo conf_system_jsse.enableSNIExtension để định cấu hình SNI trên Trình xử lý thông báo, nhưng bạn cần xác minh rằng thuộc tính thực tế jsse.enableSNIExtension đã được đặt bằng giá trị mới.
-
Trên máy Message Processor, hãy tìm thuộc tính
jsse.enableSNIExtensiontrong thư mục/opt/apigee/edge-message-processor/confvà kiểm tra xem thuộc tính này đã được đặt thành giá trị mới như minh hoạ bên dưới hay chưa:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
Nếu bạn cập nhật thành công cấu hình SNI trên Message Processor, thì lệnh ở trên sẽ cho thấy giá trị mới trong tệp
system.properties.Sau đây là kết quả mẫu từ lệnh trên sau khi bạn bật SNI trên Trình xử lý thông báo:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Tương tự, kết quả mẫu từ lệnh trên sau khi bạn tắt SNI trên Trình xử lý thông báo sẽ như sau:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
Trong ví dụ về đầu ra ở trên, lưu ý rằng thuộc tính
jsse.enableSNIExtensionđã được cập nhật thành giá trị mớitruehoặcfalsetrongsystem.properties. Điều này cho biết SNI đã được bật hoặc tắt thành công trên Trình xử lý thông báo. -
Nếu bạn vẫn thấy giá trị cũ cho thuộc tính
jsse.enableSNIExtension, hãy xác minh rằng bạn đã làm theo tất cả các bước được nêu trong phần thích hợp để bật hoặc tắt SNI một cách chính xác. Nếu bạn bỏ lỡ bước nào, hãy lặp lại tất cả các bước một cách chính xác. - Nếu bạn vẫn không thể bật/tắt SNI , hãy liên hệ với Nhóm hỗ trợ Apigee Edge.