Đị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.
Chuyển đến tài liệu về Apigee X.
thông tin

Proxy API có chức năng liên kết 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ủ ảo xác định cách proxy API đối diện công khai hiển thị với một ứng dụng. Ví dụ: máy chủ ảo xác định xem proxy API có thể truy cập được 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à nó sử dụng.

TargetEndpoint là đường liên kết ngoài tương đương với 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 hoặc sử dụng nhiều TargetEndpoints.

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 proxy API hoặc chỉnh sửa tệp đó 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 proxy API để cập nhật.
  3. Chọn thẻ Phát triển.
  4. Trong phần Điểm cuối mục tiêu, hãy chọn 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 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 bất kỳ thay đổi nào và lưu proxy. Nếu proxy API đã được triển khai, hãy lưu proxy API sẽ triển khai lại bằng chế độ cài đặt mới.

Xin lưu ý rằng định nghĩa TargetEndpoint chứa thuộc tính name. Bạn sử dụng giá trị của thuộc tính name để định cấu hình định nghĩa ProxyEndpoint của proxy API nhằm sử dụng TargetEndpoint. Xem Tài liệu tham khảo về cấu hình proxy API để biết thêm.

Bạn có thể định cấu hình TargetEndpoints để tham chiếu đến một Máy chủ mục tiêu thay vì một URL mục tiêu 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. TargetServers dùng để hỗ trợ việc cân bằng tải và chuyển đổi dự phòng trên nhiều thực thể 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 TargetServers được đặt tên như bên dưới.

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

Hãy xem bài viết 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 nê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 tệp đối chiếu để chỉ định kho khoá hoặc kho lưu trữ tin cậy mà Edge sử dụng.

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

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

Khi gửi yêu cầu TLS thông qua một 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ỉ đã được một tổ chức phát hành chứng chỉ (CA) đáng tin cậy ký.
  • Chứng chỉ chưa hết hạn.
  • Chứng chỉ sẽ có một tên phổ biến. Nếu có tên phổ biến, Edge sẽ không xác thực rằng tên thường gọi 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 kho lưu trữ tin cậy 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ủ do bên thứ ba ký, thì bạn sẽ phải tải chuỗi chứng chỉ hoàn chỉnh, bao gồm cả chứng chỉ CA gốc, lên Truststore. Không có CA nào được ngầm tin cậy.
  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 tệp tham chiếu đến kho khoá hoặc kho lưu trữ tin cậy

Ví dụ bên dưới 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 sẽ chỉ định một kho khoá và kho lưu trữ tin cậy theo định nghĩa TargetEndpoint hoặc TargetServer.

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

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

Chuyển đổi TargetEndpoint hoặc TargetServer để dùng một tệp đối chiếu

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

  1. Hãy cập nhật định nghĩa TargetEndpoint hoặc TargetServer để sử dụng một tệp tham chiếu.
  2. Khởi động lại Bộ xử lý tin nhắn Edge:
    • Đối với khách hàng đám mây công cộng, hãy liên hệ với Nhóm hỗ trợ Apigee để khởi động lại Bộ xử lý thư.
    • Đối với khách hàng sử dụng Đám mây riêng tư, hãy khởi động lại lần lượt từng Trình xử lý thông báo Edge.
  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 định nghĩa TargetEndpoint, việc định cấu hình quyền truy cập TLS một chiều từ Edge (máy khách TLS) đến máy chủ phụ trợ (máy chủ TLS) không yêu cầu bất kỳ cấu hình bổ sung nào trên Edge. Máy chủ phụ trợ có trách nhiệm định cấu hình TLS 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 dùng một TargetServer để xác định dịch vụ phụ trợ, hãy bật TLS trong phần đị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 kho lưu trữ tin cậy chứa chứng chỉ phụ trợ hoặc chuỗi chứng chỉ. Sau đó, bạn chỉ định kho lưu trữ tin cậy 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 về 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>

Để đị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 kho khoá trên Edge rồi tải chứng chỉ phụ trợ hoặc chuỗi CA lên, như mô tả trong Kho khoá và Kho tin cậy. Trong ví dụ này, nếu bạn phải tạo một Truststore, hãy đặt tên cho nó là myTrustStore.
  2. Nếu bạn đã tạo một Truststore, hãy sử dụng lệnh gọi POST API sau đây để tạo tệp đối chiếu có tên myTrustStoreRef cho kho lưu trữ tin cậy 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 proxy API (hoặc nếu bạn xác định proxy API trong XML, hãy chỉnh sửa tệp XML cho proxy):
    1. Đăng nhập vào giao diện 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 proxy API để cập nhật.
    4. Chọn thẻ Phát triển.
    5. Trong phần Điểm cuối mục tiêu, hãy chọn mặc định.
    6. Trong vùng mã, hãy chỉnh sửa phần tử <HTTPTargetConnection> để thêm phần tử <SSLInfo>. Hãy nhớ chỉ định đúng 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 proxy API đã được triển khai, hãy lưu proxy API để triển khai lại 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 (ứng dụng 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ỉ Edge cũng như khoá riêng tư lên.
  • Nếu bạn muốn xác thực chứng chỉ phụ trợ, hãy tạo một kho tin cậy 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 proxy API 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ó bí danh riêng, trong cùng một kho khoá. Theo mặc định, Edge sử dụng chứng chỉ đầu tiên được xác định trong kho khoá.

Bạn có thể định cấu hình Edge để sử dụng chứng chỉ do thuộc tính <KeyAlias> chỉ định (không bắt buộc). Đ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 kho khoá bạn muốn sử dụng trong phần định nghĩa TargetServer. Nếu không tìm thấy chứng chỉ nào 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 dành cho đám mây công cộng phải liên hệ với Nhóm hỗ trợ API Apigee để bật tính năng này.

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

Để đị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 làm theo quy trình được mô tả tại đây: Keystores và Truststores. Đối với ví dụ này, hãy tạo một kho khoá có tên là myTestKeystore, sử dụng tên đại diện 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 tệp đối chiếu có tên myKeyStoreRef cho kho khoá 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
    

    Tệp đối chiếu chỉ định tên của kho khoá và kiểu tham chiếu là KeyStore.

    Hãy sử dụng lệnh gọi GET API sau đây để xem tài liệu 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: Kho khoá và Kho tin cậy. Trong ví dụ này: nếu bạn phải tạo tên Truststore, tên là myTrustStore.
  4. Nếu bạn đã tạo một Truststore, hãy sử dụng lệnh gọi POST API sau đây để tạo tệp đối chiếu có tên myTrustStoreRef cho kho lưu trữ tin cậy 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 proxy API (hoặc nếu bạn xác định proxy API trong XML, hãy chỉnh sửa 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 proxy API để cập nhật.
    4. Chọn thẻ Phát triển.
    5. Trong phần Điểm cuối mục tiêu, hãy chọn mặc định.
    6. Trong vùng mã, hãy chỉnh sửa phần tử <HTTPTargetConnection> để thêm phần tử <SSLInfo>. Hãy nhớ 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 proxy API đã được triển khai, hãy lưu proxy API để triển khai lại bằng chế độ cài đặt mới.

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

Bật sFTP

Edge hỗ trợ việc sử dụng Chỉ báo tên máy chủ (SNI) của các Bộ xử lý thông báo để nhắm mục tiêu các điểm cuối trong Apigee Edge cho Cloud và cho các hoạt động triển khai đá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ợ Akamai, thì bạn có thể bật tính năng này. Hãy xem bài viết Sử dụng NNAPI với Edge để biết thêm thông tin.