Định cấu hình SNI giữa bộ xử lý thông báo Edge và máy chủ phụ trợ

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áy chủ phụ trợ HTTPS cùng một lúc Địa chỉ IP và cổng mà không yêu cầu các máy chủ phụ trợ đó phải 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 ứ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ừ khách hàng.

Theo mặc định, SNI bị tắt trên thành phần Trình xử lý thư trong Edge đối với Đá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 là được định cấu hình để hỗ trợ SNI thì bạn cần bật SNI trên thành phần Trình xử lý thư. Nếu không, các yêu cầu API gửi qua Apigee Edge sẽ không thực hiện được với Lỗi bắt tay TLS.

Tài liệu này giải thích cách thực hiện những việc sau:

Trước khi bắt đầu

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.

  1. Thực thi lệnh openssl và cố gắng kết nối với tên máy chủ có liên quan (Bộ định tuyến cạnh 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
    
  2. Bạn có thể nhận được chứng chỉ và đôi khi bạn 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
    
  3. Thực thi lệnh openssl và cố gắng kết nối với máy chủ có liên quan tên máy chủ (bộ định tuyến Edge 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
    
  4. Nếu bạn gặp lỗi bắt tay ở bước 1 hoặc nhận các chứng chỉ khác nhau ở bước 1 và bước 2, thì nó cho biết rằng Máy chủ được chỉ định đã được bật SNI.
  5. Nếu muốn xác minh tài khoản này trên 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 bạn thấy rằng mình có một hoặc nhiều máy chủ phụ trợ đã được bật SNI thì bạn cần phải bật SNI trên thành phần Trình xử lý thư như được giải thích bên dưới. Nếu không, API các yêu cầu gửi qua Apigee Edge sẽ không thực hiện được với Lỗi bắt tay TLS.

Bật SNI giữa Trình xử lý thư 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ư Edge và phần phụ trợ máy chủ. Có thể bật SNI thông qua thuộc tính jsse.enableSNIExtension trên thành phần Trình xử lý thư. Để định cấu hình bất kỳ thuộc tính nào trên Trình xử lý thư, hãy sử dụng mã thông báo theo cú pháp được mô tả trong Cách định cấu hình Edge.

Để bật SNI trên Trình xử lý thư, hãy thực hiện các bước sau:

  1. Tìm mã thông báo của thuộc tính jsse.enableSNIExtension
  2. Bật SNI trên Trình xử lý thư

Tìm mã thông báo của tài sản jsse.enableSNIExtension

Các bước sau đây mô tả cách tìm mã thông báo cho Thuộc tính jsse.enableSNIExtension:

  1. Tìm kiếm thuộc tính jsse.enableSNIExtension trong nguồn Trình xử lý thư thư mục /opt/apigee/edge-message-processor/source bằng lệnh sau:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
    
  2. Kết quả của lệnh này cho thấy mã thông báo cho thuộc tính của Trình xử lý thư jsse.enableSNIExtension 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 bạn có thể đặt trong tệp .properties của Trình xử lý thư.

    Do đó, mã thông báo cho thuộc tính jsse.enableSNIExtension như sau:

    conf_system_jsse.enableSNIExtension
    

Bật SNI trên Trình xử lý thư

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.

  1. Trên máy Trình xử lý thư, mở tệp sau trong trình chỉnh sửa. Nếu không đã tồn tại, thì hãy tạo nó.
    /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
    
  2. Thêm một dòng ở định dạng sau vào tệp thuộc tính:
    conf_system_jsse.enableSNIExtension=true
    
  3. Lưu các thay đổi.
  4. Đảm bảo tệp thuộc tính này thuộc sở hữu của người dùng apigee như minh hoạ dưới đây:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Khởi động lại Trình xử lý thư như minh hoạ dưới đây:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Xác minh cấu hình SNI đã được cập nhật trên Trình xử lý thư.
  7. Nếu bạn có nhiều Trình xử lý thư, hãy lặp lại các bước trên cho tất cả Bộ xử lý tin nhắn.

Tắt SNI giữa Trình xử lý thư Edge và máy chủ phụ trợ

Nói chung, bạn sẽ không thấy bất kỳ sự cố nào sau khi bật SNI. Tuy nhiên, nếu bạn quan sát thấy mọi vấn đề kết nối giữa Trình xử lý thông báo Edge và máy chủ phụ trợ sau đó bật SNI, bạn luôn có thể vô hiệu hóa SNI bằng cách thực hiện các bước sau đây.

Có thể tắt SNI bằng cách đặt thuộc tính jsse.enableSNIExtension quay lại false trên thành phần Trình xử lý thư.

Tắt SNI trên Trình xử lý thư

Các bước sau đây mô tả cách tắt SNI trên Trình xử lý tin nhắn Apigee.

  1. Trên máy Trình xử lý thư, mở tệp sau trong trình chỉnh sửa. Nếu không đã tồn tại, thì hãy tạo nó.
    /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
    
  2. Nếu dòng conf_system_jsse.enableSNIExtension=true tồn tại trong /opt/apigee/customer/application/message-processor.properties, sau đó sửa đổi thành sau:
    conf_system_jsse.enableSNIExtension=false
    
  3. Lưu các thay đổi.
  4. Đảm bảo tệp thuộc tính này thuộc sở hữu của người dùng apigee như minh hoạ dưới đây:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Khởi động lại Trình xử lý thư như minh hoạ dưới đây:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Xác minh cấu hình SNI đã được cập nhật trên Trình xử lý thư.
  7. Nếu bạn có nhiều Trình xử lý thư, hãy lặp lại các bước trên cho tất cả Bộ xử lý tin nhắn.

Xác minh cấu hình SNI trên bộ xử lý thư

Phần này giải thích cách xác minh cấu hình SNI đã được thành công đã cập nhật trên Trình xử lý tin nhắn.

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ư, bạn cần xác minh rằng thuộc tính thực tế jsse.enableSNIExtension đã được đặt với giá trị mới.

  1. Trên máy Xử lý thư, hãy tìm kiếm thuộc tính jsse.enableSNIExtension trong thư mục /opt/apigee/edge-message-processor/conf và kiểm tra xem liệu nó có đã được đặt với giá trị mới như sau:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
    
  2. Nếu cấu hình SNI được cập nhật thành công trên Trình xử lý thư thì lệnh ở trên cho biết giá trị mới trong tệp system.properties.

    Kết quả mẫu từ lệnh trên sau khi bạn bật SNI trên Trình xử lý thư như sau:

    /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 hoạt động như sau:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
    

    Trong kết quả của ví dụ ở trên, hãy lưu ý rằng thuộc tính jsse.enableSNIExtension đã được cập nhật lên giá trị mới true hoặc false trong system.properties. Điều này cho biết rằng SNI được bật thành công hoặc bị vô hiệu hoá trên Trình xử lý thư.

  3. Nếu bạn vẫn thấy giá trị cũ của thuộc tính jsse.enableSNIExtension, thì 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 vô hiệu hoá SNI đúng cách. Nếu bạn đã bỏ lỡ bất kỳ 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.
  4. Nếu bạn vẫn không thể bật/tắt SNI , thì liên hệ Hỗ trợ Apigee Edge.