Định cấu hình TLS từ Edge sang chương trình phụ trợ (Cloud và Private Cloud)

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

Một proxy API hoạt động như một mối liên kết giữa một điểm cuối có sẵn công khai với dịch vụ phụ trợ của bạn. Máy chủ lưu trữ ảo xác định cách proxy API công khai được hiển thị cho một ứng dụng. Ví dụ: máy chủ lưu trữ ảo xác định xem có thể truy cập vào proxy API bằng cách sử dụng TLS hay không. Khi bạn định cấu hình một proxy API, hãy chỉnh sửa định nghĩa ProxyEndpoint của proxy đó để định cấu hình các máy chủ ảo mà proxy đó sử dụng.

TargetEndpoint là giá trị tương đương đi ra của ProxyEndpoint. TargetEndpoint hoạt động như một ứng dụng HTTP từ Edge đến một dịch vụ phụ trợ. Khi tạo một proxy API, bạn có thể định cấu hình proxy đó để sử dụng không hoặc nhiều TargetEndpoint.

Tìm hiểu thêm:

Định cấu hình TargetEndpoint hoặc TargetServer

Để định cấu hình TargetEndpoint, hãy chỉnh sửa đối tượng XML xác định TargetEndpoint. Bạn có thể chỉnh sửa TargetEndpoint bằng cách chỉnh sửa tệp XML xác định TargetEndpoint trong API proxy hoặc chỉnh sửa trong giao diện người dùng quản lý Edge.

Cách sử dụng giao diện người dùng quản lý Edge để chỉnh sửa TargetEndpoint:

  1. Đăng nhập vào giao diện người dùng quản lý Edge tại https://enterprise.apigee.com.
  2. Chọn tên của API proxy cần cập nhật.
  3. Chọn thẻ Phát triển.
  4. Trong phần Target Endpoints (Điểm cuối mục tiêu), hãy chọn default (mặc định).
  5. Trong vùng mã, định nghĩa TargetEndpoint sẽ xuất hiện, tương tự như bên dưới:
    <TargetEndpoint name="default">
      <Description/>
      <FaultRules/>
      <Flows/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPTargetConnection>
        <Properties/>
        <SSLInfo>
          <Enabled>true</Enabled>
          <TrustStore>ref://myTrustStoreRef</TrustStore>
        </SSLInfo>
        <URL>https://mocktarget.apigee.net</URL>
      </HTTPTargetConnection>
    </TargetEndpoint>
  6. Định cấu hình một truststore như mô tả bên dưới trong phần Giới thiệu về cấu hình TLS với phần phụ trợ.
  7. Thực hiện mọi thay đổi và lưu proxy. Nếu bạn đã triển khai proxy API, việc lưu proxy đó sẽ triển khai lại proxy với chế độ cài đặt mới.

Lưu ý rằng định nghĩa TargetEndpoint chứa một thuộc tính name. Bạn dùng giá trị của thuộc tính name để định cấu hình định nghĩa ProxyEndpoint của một API proxy nhằm dùng TargetEndpoint. Hãy xem tài liệu tham khảo về cấu hình của API proxy để biết thêm thông tin.

Bạn có thể định cấu hình TargetEndpoints để tham chiếu đến một TargetServer, thay vì URL đích rõ ràng. Cấu hình TargetServer tách các URL điểm cuối cụ thể khỏi cấu hình TargetEndpoint. TargetServer được dùng để hỗ trợ cân bằng tải và chuyển đổi dự phòng trên nhiều phiên bản máy chủ phụ trợ.

Dưới đây là ví dụ về định nghĩa TargetServer:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>80</Port>
  <IsEnabled>true</IsEnabled>
</TargetServer> 

TargetServer được tham chiếu theo tên trong phần tử <HTTPTargetConnection> trong định nghĩa TargetEndpoint. Bạn có thể định cấu hình một hoặc nhiều TargetServer được đặt tên, như minh hoạ dưới đây.

<TargetEndpoint name="default">
  ...
  <HTTPTargetConnection>
    <LoadBalancer>
      <Server name="target1" />
      <Server name="target2" />
    </LoadBalancer>
    <Path>/test</Path>
  </HTTPTargetConnection>
  ...
</TargetEndpoint>

Hãy xem phần Cân bằng tải trên các máy chủ phụ trợ để biết thêm thông tin.

Giới thiệu về cấu hình TLS với phần phụ trợ

Trước khi định cấu hình quyền truy cập TLS vào phần phụ trợ, bạn cần nắm được 2 điểm quan trọng:

  1. Theo mặc định, Edge không xác thực chứng chỉ phụ trợ. Bạn phải tạo một truststore để định cấu hình Edge nhằm xác thực chứng chỉ.
  2. Sử dụng một tham chiếu để chỉ định kho khoá hoặc kho tin cậy mà Edge sử dụng.

Cả hai yếu tố cần cân nhắc này đều được mô tả dưới đây.

Xác định truststore để bật tính năng xác thực chứng chỉ

Khi đưa ra yêu cầu TLS thông qua TargetEndpoint hoặc TargetServer, theo mặc định, Edge không xác thực chứng chỉ TLS nhận được từ máy chủ phụ trợ. Điều đó có nghĩa là Edge không xác thực rằng:

  • Chứng chỉ này đã được một CA đáng tin cậy ký.
  • Chứng chỉ chưa hết hạn.
  • Chứng chỉ này có một tên chung. Nếu có tên phổ biến, Edge sẽ không xác thực rằng tên phổ biến khớp với tên máy chủ được chỉ định trong URL.

Để định cấu hình Edge nhằm xác thực chứng chỉ phụ trợ, bạn phải:

  1. Tạo một truststore trên Edge.
  2. Tải chứng chỉ hoặc chuỗi chứng chỉ của máy chủ lên truststore. Nếu chứng chỉ máy chủ được bên thứ ba ký, thì bạn sẽ cần tải toàn bộ chuỗi chứng chỉ lên truststore, bao gồm cả chứng chỉ CA gốc. Không có CA nào được tin cậy ngầm.
  3. Thêm truststore vào định nghĩa TargetEndpoint hoặc TargetServer.

Hãy xem phần Kho khoá và kho tin cậy để biết thêm thông tin.

Ví dụ:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Sử dụng một tham chiếu đến kho khoá hoặc kho tin cậy

Ví dụ dưới đây cho thấy cách định cấu hình TargetEndpoint hoặc TargetServer để hỗ trợ TLS. Trong quá trình định cấu hình TLS, bạn chỉ định một truststore và keystore trong định nghĩa TargetEndpoint hoặc TargetServer.

Apigee rất khuyến khích bạn sử dụng một tham chiếu đến kho khoá và kho lưu trữ đáng tin cậy trong định nghĩa TargetEndpoints hoặc TargetServer. Ưu điểm của việc sử dụng một tham chiếu là bạn chỉ phải cập nhật tham chiếu để trỏ đến một kho khoá hoặc kho lưu trữ đáng tin cậy khác để cập nhật chứng chỉ TLS.

Các tham chiếu đến kho khoá và kho tin cậy trong định nghĩa TargetEndpoints hoặc TargetServer hoạt động theo cách tương tự như đối với máy chủ ảo.

Chuyển đổi TargetEndpoint hoặc TargetServer để sử dụng một tham chiếu

Bạn có thể có các định nghĩa TargetEndpoint hoặc TargetServer hiện có sử dụng tên theo nghĩa đen của kho khoá và kho lưu trữ đáng tin cậy. Cách chuyển đổi định nghĩa TargetEndpoint hoặc TargetServer để sử dụng các tham chiếu:

  1. Cập nhật định nghĩa TargetEndpoint hoặc TargetServer để sử dụng một tham chiếu.
  2. Khởi động lại Edge Message Processors:
    • Đối với khách hàng sử dụng Đám mây công cộng, hãy liên hệ với Nhóm hỗ trợ Apigee Edge để khởi động lại Bộ xử lý thông báo.
    • Đối với khách hàng sử dụng Đám mây riêng, hãy khởi động lại Bộ xử lý thông báo Edge từng cái một.
  3. Xác nhận rằng TargetEndpoint hoặc TargetServer của bạn đang hoạt động đúng cách.

Định cấu hình TLS một chiều cho máy chủ phụ trợ

Khi sử dụng một định nghĩa TargetEndpoint, việc định cấu hình quyền truy cập TLS một chiều từ Edge (ứng dụng TLS) đến máy chủ phụ trợ (máy chủ TLS) không yêu cầu bạn phải định cấu hình thêm trên Edge. Máy chủ phụ trợ có trách nhiệm định cấu hình TLS (Bảo mật tầng truyền tải) một cách chính xác.

Bạn chỉ cần đảm bảo rằng phần tử <URL> trong định nghĩa TargetEndpoint tham chiếu đến dịch vụ phụ trợ theo giao thức HTTPS và bạn bật TLS:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Nếu bạn đang sử dụng TargetServer để xác định dịch vụ phụ trợ, hãy bật TLS trong định nghĩa TargetServer:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
  </SSLInfo> 
</TargetServer> 

Tuy nhiên, nếu muốn Edge xác thực chứng chỉ phụ trợ, thì bạn phải tạo một truststore chứa chứng chỉ phụ trợ hoặc chuỗi chứng chỉ. Sau đó, bạn chỉ định truststore trong định nghĩa TargetEndpoint:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Hoặc trong định nghĩa TargetServer:

<TargetServer name="target1">
  <Host>mockserver.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
    <TrustStore>ref://myTrustStoreRef</TrustStore>
  </SSLInfo> 
</TargetServer>

Cách định cấu hình TLS một chiều:

  1. Nếu bạn muốn xác thực chứng chỉ phụ trợ, hãy tạo một truststore trên Edge và tải chứng chỉ phụ trợ hoặc chuỗi CA lên, như mô tả trong phần Keystore và Truststore. Ví dụ: nếu bạn phải tạo một truststore, hãy đặt tên là myTrustStore.
  2. Nếu bạn đã tạo một truststore, hãy dùng lệnh gọi API POST sau đây để tạo tham chiếu có tên là myTrustStoreRef cho truststore mà bạn đã tạo ở trên:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
      -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
      </ResourceReference>' -u email:password
    
  3. Sử dụng giao diện người dùng quản lý Edge để cập nhật định nghĩa TargetEndpoint cho API proxy (hoặc nếu bạn xác định API proxy trong XML, hãy chỉnh sửa các tệp XML cho proxy):
    1. Đăng nhập vào giao diện người dùng quản lý Edge tại https://enterprise.apigee.com.
    2. Trong trình đơn giao diện người dùng Quản lý Edge, hãy chọn API.
    3. Chọn tên của API proxy cần cập nhật.
    4. Chọn thẻ Phát triển.
    5. Trong phần Target Endpoints (Điểm cuối mục tiêu), hãy chọn default (mặc định).
    6. Trong vùng mã, hãy chỉnh sửa phần tử <HTTPTargetConnection> để thêm phần tử <SSLInfo>. Đảm bảo bạn chỉ định đúng thông tin tham chiếu truststore và đặt <Enabled> thành true:
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <TrustStore>ref://myTrustStoreRef</TrustStore>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        …
      </TargetEndpoint>
    7. Lưu proxy API. Nếu bạn đã triển khai proxy API, việc lưu proxy sẽ triển khai lại proxy đó bằng chế độ cài đặt mới.

Định cấu hình TLS hai chiều cho máy chủ phụ trợ

Nếu bạn muốn hỗ trợ TLS hai chiều giữa Edge (máy khách TLS) và máy chủ phụ trợ (máy chủ TLS):

  • Tạo một kho khoá trên Edge rồi tải chứng chỉ và khoá riêng tư của Edge lên.
  • Nếu bạn muốn xác thực chứng chỉ phụ trợ, hãy tạo một truststore trên Edge chứa chứng chỉ và chuỗi CA mà bạn nhận được từ máy chủ phụ trợ.
  • Cập nhật TargetEndpoint của mọi API proxy tham chiếu đến máy chủ phụ trợ để định cấu hình quyền truy cập TLS.

Sử dụng bí danh khoá để chỉ định chứng chỉ kho khoá

Bạn có thể xác định nhiều chứng chỉ, mỗi chứng chỉ có một bí danh riêng, trong cùng một kho khoá. Theo mặc định, Edge sẽ sử dụng chứng chỉ đầu tiên được xác định trong kho khoá.

Ngoài ra, bạn có thể định cấu hình Edge để sử dụng chứng chỉ do thuộc tính <KeyAlias> chỉ định. Điều này cho phép bạn xác định một kho khoá duy nhất cho nhiều chứng chỉ, sau đó chọn chứng chỉ mà bạn muốn sử dụng trong định nghĩa TargetServer. Nếu không tìm thấy chứng chỉ có bí danh khớp với <KeyAlias>, thì Edge sẽ sử dụng thao tác mặc định là chọn chứng chỉ đầu tiên trong kho khoá.

Người dùng Edge cho Đám mây công cộng phải liên hệ với Nhóm hỗ trợ Apigee Edge để bật tính năng này.

Định cấu hình TLS hai chiều

Cách định cấu hình TLS hai chiều:

  1. Tạo kho khoá trên Edge, rồi tải chứng chỉ và khoá riêng tư lên bằng cách sử dụng quy trình được mô tả tại đây: Kho khoá và kho tin cậy. Trong ví dụ này, hãy tạo một kho khoá có tên là myTestKeystore sử dụng tên bí danh là myKey cho chứng chỉ và khoá riêng tư.
  2. Sử dụng lệnh gọi API POST sau đây để tạo tham chiếu có tên là myKeyStoreRef cho kho khoá mà bạn đã tạo ở trên:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myKeyStoreRef">
        <Refers>myTestKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    

    Thông tin tham chiếu chỉ định tên của kho khoá và loại thông tin tham chiếu là KeyStore.

    Sử dụng lệnh gọi API GET sau đây để xem thông tin tham khảo:

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef /
    -u email:password
    
  3. Nếu bạn muốn xác thực chứng chỉ phụ trợ, hãy tạo một truststore trên Edge, rồi tải chứng chỉ và chuỗi CA lên, như mô tả tại đây: Keystore và Truststore. Trong ví dụ này, nếu bạn phải tạo một truststore, hãy đặt tên là myTrustStore.
  4. Nếu bạn đã tạo một truststore, hãy dùng lệnh gọi API POST sau đây để tạo tham chiếu có tên là myTrustStoreRef cho truststore mà bạn đã tạo ở trên:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    
  5. Sử dụng giao diện người dùng quản lý Edge để cập nhật định nghĩa TargetEndpoint cho API proxy (hoặc, nếu bạn xác định API proxy trong XML, hãy chỉnh sửa các tệp XML cho proxy):
    1. Đăng nhập vào giao diện người dùng quản lý Edge tại https://enterprise.apigee.com.
    2. Trong trình đơn giao diện người dùng Quản lý Edge, hãy chọn API.
    3. Chọn tên của API proxy cần cập nhật.
    4. Chọn thẻ Phát triển.
    5. Trong phần Target Endpoints (Điểm cuối mục tiêu), hãy chọn default (mặc định).
    6. Trong vùng mã, hãy chỉnh sửa phần tử <HTTPTargetConnection> để thêm phần tử <SSLInfo>. Đảm bảo rằng bạn chỉ định đúng kho khoá và bí danh khoá, đồng thời đặt cả phần tử <Enabled><ClientAuthEnabled> thành true:
      <TargetEndpoint name="default">
        ...
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>ref://myKeyStoreRef</KeyStore>
            <KeyAlias>myKey</KeyAlias>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        ...
      </TargetEndpoint>
    7. Lưu proxy API. Nếu bạn đã triển khai proxy API, việc lưu proxy sẽ triển khai lại proxy đó bằng chế độ cài đặt mới.

Để biết thêm thông tin về các lựa chọn có trong <TargetEndpoint>, bao gồm cả việc sử dụng các biến để cung cấp giá trị <SSLInfo> TargetEndpoint, hãy xem phần Tài liệu tham khảo về cấu hình của API proxy.

Bật SNI

Edge hỗ trợ việc sử dụng Chỉ báo tên máy chủ (SNI) từ Trình xử lý thông báo để nhắm đến các điểm cuối trong Apigee Edge cho các hoạt động triển khai Cloud và Private Cloud.

Đối với Edge for Private Cloud, để tương thích ngược với các phần phụ trợ mục tiêu hiện có, Apigee đã tắt SNI theo mặc định. Nếu được định cấu hình để hỗ trợ SNI, bạn có thể bật tính năng này. Hãy xem bài viết Sử dụng SNI với Edge để biết thêm thông tin.