Sử dụng SNI với Edge

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Chỉ báo tên máy chủ (SNI) cho phép phân phát nhiều mục tiêu HTTPS qua cùng một địa chỉ IP và cổng mà không yêu cầu các mục tiêu đó sử dụng cùng một chứng chỉ TLS. Khi KDDI được bật trên một ứng dụng, ứng dụng sẽ truyền tên máy chủ của điểm cuối mục tiêu trong quá trình bắt tay TLS ban đầu. Điều đó cho phép máy chủ TLS xác định nên sử dụng chứng chỉ TLS nào để xác thực yêu cầu.

Ví dụ: nếu mục tiêu yêu cầu là https://example.com/request/path, thì ứng dụng TLS sẽ thêm phần mở rộng server_name vào yêu cầu bắt tay TLS như thể hiện dưới đây:

Edge hỗ trợ NNAPI cho:

  • Yêu cầu từ một ứng dụng khách đến proxy API. Trong trường hợp này, Edge đóng vai trò là máy chủ TLS (Bảo mật tầng truyền tải)
  • Yêu cầu từ Edge đến phần phụ trợ. Trong trường hợp này, Edge đóng vai trò là ứng dụng TLS.

Để biết thêm thông tin về KDDI, hãy xem:

Hỗ trợ NNAPI cho một yêu cầu đến proxy API trên Edge

Khả năng hỗ trợ DEX cho các yêu cầu đến proxy API được kiểm soát bởi các bí danh máy chủ và máy chủ ảo.

Giới thiệu về máy chủ ảo và email đại diện của máy chủ

Với Edge, một máy chủ ảo xác định địa chỉ IP và cổng, hoặc tên DNS và cổng mà trên đó proxy API được hiển thị, và theo đó là URL mà các ứng dụng dùng để truy cập proxy API. Địa chỉ IP/tên DNS tương ứng với một Bộ định tuyến Edge và số cổng là một cổng đang mở trên Bộ định tuyến.

Khi bạn tạo máy chủ ảo, bạn cũng chỉ định bí danh của máy chủ lưu trữ ảo. Thông thường, đây là tên DNS của máy chủ ảo. Trong quá trình xác định proxy API xử lý yêu cầu, Bộ định tuyến so sánh tiêu đề Host của yêu cầu đến với danh sách các bí danh của máy chủ có sẵn được xác định bởi tất cả máy chủ ảo.

Tổ hợp tên đại diện của máy chủ lưu trữ và số cổng cho máy chủ ảo phải là duy nhất đối với tất cả máy chủ ảo trong quá trình cài đặt Edge. Điều đó có nghĩa là nhiều máy chủ ảo có thể sử dụng cùng một số cổng nếu có các bí danh máy chủ khác nhau.

Máy chủ ảo cũng xác định xem proxy API được truy cập bằng giao thức HTTP hay bằng giao thức HTTPS đã mã hoá bằng TLS. Khi định cấu hình máy chủ ảo để sử dụng HTTPS, hãy liên kết máy chủ ảo với một kho khoá chứa chứng chỉ và khoá riêng tư mà máy chủ ảo sử dụng trong quá trình xử lý qua TLS.

Để biết thêm thông tin về máy chủ ảo, hãy xem:

Cách NNAPI hoạt động với các bí danh của máy chủ lưu trữ

NNAPI cho phép bạn xác định nhiều máy chủ ảo trên cùng một cổng, mỗi cổng có các chứng chỉ và khoá TLS khác nhau. Sau đó, Edge sẽ xác định máy chủ ảo và cặp chứng chỉ/khoá mà TLS sử dụng, dựa trên tiện ích server_name trong yêu cầu bắt tay TLS.

Bộ định tuyến cạnh đọc tiện ích server_name trong yêu cầu bắt tay TLS rồi sử dụng tiện ích này để tìm kiếm email đại diện của máy chủ trên mọi máy chủ ảo. Nếu Bộ định tuyến phát hiện thấy sự trùng khớp với bí danh của máy chủ, thì Bộ định tuyến sẽ sử dụng chứng chỉ và khoá TLS (Bảo mật tầng truyền tải) từ máy chủ ảo được liên kết với bí danh của máy chủ. Nếu không tìm thấy kết quả trùng khớp, thì quá trình bắt tay TLS sẽ không thành công.

Thay vì giao thức bắt tay TLS không thành công, bạn có thể xác định một cặp chứng chỉ/khoá mặc định, như mô tả trong các phần tiếp theo.

Xác định cặp chứng chỉ/khoá mặc định trong Edge cho Cloud

Apigee cung cấp chứng chỉ TLS và khoá riêng tư để hỗ trợ HTTPS. Mặc dù nhiều khách hàng thích sử dụng chứng chỉ và khoá riêng tư của riêng mình tại thời điểm triển khai, nhưng bạn có thể triển khai API của mình bằng cách sử dụng chứng chỉ và khoá Apigee.

Trong Edge dành cho đám mây, nếu Bộ định tuyến không thể so khớp tiêu đề NNAPI với một bí danh của máy chủ hoặc nếu ứng dụng khách không hỗ trợ DEX, thì Bộ định tuyến sẽ sử dụng chứng chỉ mặc định do Apigee cung cấp, đó là *.apigee.net.

Xác định cặp chứng chỉ/khoá mặc định trong Edge cho Đám mây riêng tư

Trong Edge dành cho Đám mây riêng tư, nếu không tìm thấy kết quả trùng khớp giữa tiện ích server_name và bí danh của máy chủ lưu trữ trên tất cả máy chủ ảo, hoặc nếu ứng dụng yêu cầu không hỗ trợ DEX, bạn có thể định cấu hình Bộ định tuyến để sử dụng chứng chỉ/khoá từ máy chủ ảo mặc định trên cổng. Máy chủ ảo mặc định được xác định bằng tổ hợp tên tổ chức, tên môi trường và tên máy chủ ảo, có dạng như sau:

orgName_envName_vhName

Bộ định tuyến sử dụng chứng chỉ/khoá từ tổ hợp orgName_envName_vhName xuất hiện đầu tiên theo thứ tự bảng chữ cái. Ví dụ: yêu cầu xuất hiện trên cổng 443 và có 2 máy chủ ảo được xác định cho example của tổ chức trong môi trường prod:

  • tên máy chủ ảo = default
  • tên máy chủ ảo = test

Trong ví dụ này, Bộ định tuyến sử dụng chứng chỉ/khoá từ máy chủ ảo có tên defaultexample_prod_default có trước example_prod_test theo thứ tự bảng chữ cái.

Cách bật máy chủ ảo mặc định:

  1. Trên nút Bộ định tuyến đầu tiên, hãy chỉnh sửa /opt/apigee/customer/application/router.properties. Hãy tạo tệp nếu chưa có.
  2. Thêm thuộc tính sau vào tệp để cho phép bạn xác định máy chủ ảo mặc định:
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  3. Khởi động lại bộ định tuyến:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. Lặp lại các bước này cho tất cả Bộ định tuyến còn lại.

Thay vì sử dụng chứng chỉ/khoá từ máy chủ ảo mặc định, bạn có thể xác định rõ ràng chứng chỉ/khoá mặc định trên Bộ định tuyến. Hãy sử dụng quy trình sau đây để xác định một cặp chứng chỉ/khoá mặc định rõ ràng:

  1. Trên nút Bộ định tuyến đầu tiên, hãy sao chép chứng chỉ và khoá riêng tư vào một vị trí trên nút Bộ định tuyến mà người dùng API có thể truy cập. Ví dụ: /opt/apigee/customer/application.
  2. Thay đổi quyền sở hữu các tệp thành "người dùng apigee.":
    chown apigee:apigee /opt/apigee/customer/application/myCert.pem
    chown apigee:apigee /opt/apigee/customer/application/myKey.pem
  3. Chỉnh sửa /opt/apigee/customer/application/router.properties. Hãy tạo tệp nếu chưa có.
  4. Thêm các thuộc tính sau vào tệp để cho phép bạn chỉ định chứng chỉ/khoá mặc định:
    conf_load_balancing_load.balancing.driver.nginx.fallback.server.default.ssl.template.enabled=true
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  5. Đặt các thuộc tính sau trong router.properties để chỉ định vị trí của Chứng chỉ và khoá:
    conf_load_balancing_load.balancing.driver.nginx.ssl.cert=/opt/apigee/customer/application/myCert.pem
    conf_load_balancing_load.balancing.driver.nginx.ssl.key=/opt/apigee/customer/application/myKey.pem
  6. Khởi động lại Bộ định tuyến:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. Lặp lại các bước này cho tất cả Bộ định tuyến còn lại.

Hỗ trợ NNAPI cho các yêu cầu từ Edge đến phần phụ trợ

Edge hỗ trợ việc sử dụng DEX của Bộ xử lý tin nhắn để nhắm mục tiêu các điểm cuối trong Apigee Edge for Cloud và cho các hoạt động triển khai đám mây riêng tư. Theo mặc định, SafeFrame được bật trên Edge Message Processors cho Đám mây và tắt trong Đám mây riêng tư.

Sử dụng SafeFrame vào phần phụ trợ trong Edge cho Đám mây riêng tư

Đối với Edge dành cho Đám mây riêng tư, để tương thích ngược với các phần phụ trợ mục tiêu hiện có, Apigee đã vô hiệu hoá SafeFrame theo mặc định. Nếu phần phụ trợ đích của bạn được định cấu hình để hỗ trợ DEX, bạn có thể bật tính năng này theo mô tả dưới đây cho phiên bản Edge của mình.

Bạn không cần phải định cấu hình riêng cho Edge. Nếu môi trường mục tiêu của bạn được định cấu hình cho KDDI, thì Edge sẽ hỗ trợ môi trường đó. Edge tự động trích xuất tên máy chủ từ URL yêu cầu và thêm tên máy chủ đó vào yêu cầu bắt tay TLS.

Bật SafeFrame giữa Edge và phần phụ trợ cho Edge phiên bản 4.15.07.0x

Hãy sử dụng quy trình sau để bật Akamai:

  1. Trên nút Bộ xử lý thông báo đầu tiên, hãy mở tệp /opt/apigee4/conf/apigee/message-processor/system.properties trong một trình chỉnh sửa.
  2. Đặt thuộc tính sau thành true trong system.properties:
    jsse.enableSNIExtension=true
  3. Khởi động lại Bộ xử lý tin nhắn:
    /opt/apigee4/bin/apigee-service message-processor restart
  4. Lặp lại các bước này trên tất cả Bộ xử lý thư còn lại.

Bật KDDI giữa Edge và phần phụ trợ cho Edge phiên bản 4.16.01 trở lên

Hãy sử dụng quy trình sau để bật Akamai:

  1. Trên nút Bộ xử lý thông báo đầu tiên, hãy chỉnh sửa /opt/apigee/customer/application/message-processor.properties. Hãy tạo tệp nếu chưa có.
  2. Thêm thuộc tính sau đây vào tệp:
    conf_system_jsse.enableSNIExtension=true
  3. Khởi động lại Bộ xử lý thư:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. Lặp lại các bước này trên tất cả Bộ xử lý thư còn lại.