Tùy chọn định cấu hình TLS

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

Tài liệu này cung cấp thông tin tổng quan về cách bạn định cấu hình TLS trên Edge cho 2 chức năng sau:

  1. Quyền truy cập vào proxy API của bạn bằng ứng dụng API. Sử dụng máy chủ ảo trên Bộ định tuyến Edge để định cấu hình TLS.
  2. Quyền truy cập vào các dịch vụ phụ trợ của Edge bằng Edge. Sử dụng điểm cuối mục tiêu và máy chủ mục tiêu trên Edge Message Processor (Trình xử lý tin nhắn cạnh) để định cấu hình TLS.

Cả hai loại quyền truy cập này đều được trình bày bên dưới:

Giới thiệu về cách đặt các tuỳ chọn TLS trong một máy chủ ảo hoặc máy chủ đích/điểm cuối mục tiêu

Máy chủ ảo có thể được biểu thị bằng một đối tượng XML, có dạng:

<VirtualHost name="secure">
    ...
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>true</ClientAuthEnabled> 
        <KeyStore>ref://myKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
        <TrustStore>ref://myTruststoreRef</TrustStore> 
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Khu vực của máy chủ ảo mà bạn sửa đổi để định cấu hình TLS được xác định bằng thẻ <SSLInfo>. Bạn sử dụng cùng một thẻ <SSLInfo> để định cấu hình điểm cuối mục tiêu hoặc máy chủ đích.

Bảng sau đây mô tả các phần tử cấu hình TLS mà thẻ <SSLInfo> sử dụng:

Yếu tố Mô tả
<Đã bật>

Bật TLS một chiều giữa Edge và ứng dụng API hoặc giữa Edge và phần phụ trợ đích.

Đối với máy chủ ảo, bạn phải xác định một kho khoá chứa chứng chỉ và khoá riêng tư.

<ClientAuthEnabled>

Bật TLS hai chiều giữa Edge và ứng dụng API, hoặc giữa Edge và phần phụ trợ đích.

Việc bật TLS hai chiều thường yêu cầu bạn phải thiết lập một kho lưu trữ tin cậy trên Edge.

<KeyStore> Kho khoá.
<KeyAlias> Bí danh được chỉ định khi bạn tải một chứng chỉ và khóa riêng tư lên kho khóa.
<TrustStore> Kho lưu trữ uy tín.
<IgnoreValidationErrors>

Nếu đúng, Edge sẽ bỏ qua các lỗi chứng chỉ TLS. Có hiệu lực khi định cấu hình TLS cho máy chủ đích và điểm cuối đích, cũng như khi định cấu hình các máy chủ ảo sử dụng TLS 2 chiều. Giá trị mặc định là false.

Khi được dùng với một máy chủ mục tiêu/điểm cuối mục tiêu, nếu hệ thống phụ trợ sử dụng SNI và trả về một chứng chỉ có Tên phân biệt (DN) của chủ thể không khớp với tên máy chủ, thì không có cách nào để bỏ qua lỗi và kết nối không thành công.

<CommonName>

Nếu được chỉ định, hệ thống sẽ xác thực một giá trị dựa trên tên thông thường của chứng chỉ đích. Giá trị này chỉ hợp lệ cho các cấu hình TargetEndpoint và TargetServer. Tệp này không hợp lệ cho cấu hình VirtualHost.

Theo mặc định, giá trị được chỉ định được so khớp chính xác với tên thông thường của chứng chỉ mục tiêu. Ví dụ: việc sử dụng *.myhost.com làm giá trị cho <CommonName> sẽ chỉ khớp và xác thực tên máy chủ mục tiêu nếu giá trị chính xác *.myhost.com được chỉ định làm tên thông thường trong chứng chỉ mục tiêu.

Apigee có thể so khớp với ký tự đại diện thông qua thuộc tính wildcardMatch (không bắt buộc).

Ví dụ: tên thông thường được chỉ định là abc.myhost.com trong chứng chỉ mục tiêu sẽ được so khớp và xác thực nếu phần tử <CommonName> được chỉ định như sau:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

Giới thiệu về cách đặt các phần tử <KeyStore> và <TrustStore>

Trong ví dụ về máy chủ ảo ở trên, kho khoá và kho lưu trữ tin cậy được chỉ định bằng cách sử dụng các references, có dạng như sau:

<KeyStore>ref://myKeystoreRef</KeyStore>
<TrustStore>ref://myTruststoreRef</TrustStore>

Apigee khuyên bạn nên luôn sử dụng các tệp tham chiếu đến kho khoá và kho lưu trữ tin cậy. Tệp đối chiếu là một biến chứa tên của kho khoá hoặc kho lưu trữ tin cậy, thay vì chỉ định trực tiếp tên kho khoá. Trong ví dụ này:

  • myKeystoreRef là một tham chiếu chứa tên của kho khoá. Trong ví dụ này, tên của kho khoá là myKeystore.
  • myTruststoreRef là một tệp tham chiếu chứa tên của kho lưu trữ tin cậy. Trong ví dụ này, tên của kho lưu trữ tin cậy là myTruststore.

Khi một chứng chỉ hết hạn, bạn phải cập nhật máy chủ ảo hoặc máy chủ đích/điểm cuối mục tiêu để chỉ định kho khoá hoặc kho lưu trữ tin cậy chứa chứng chỉ mới. Ưu điểm của tệp đối chiếu là bạn có thể sửa đổi giá trị của tệp đối chiếu đó để thay đổi kho khoá hoặc kho lưu trữ tin cậy mà không cần phải sửa đổi máy chủ ảo hoặc điểm cuối đích/máy chủ mục tiêu:

  • Đối với khách hàng sử dụng Google Cloud: Để thay đổi giá trị của tệp tham chiếu, bạn không cần phải liên hệ với Nhóm hỗ trợ API Apigee.
  • Đối với khách hàng dùng Đám mây riêng tư: Việc thay đổi giá trị của tệp tham chiếu không yêu cầu bạn phải khởi động lại các thành phần Edge, chẳng hạn như Bộ định tuyến và Bộ xử lý tin nhắn.

Ngoài ra, bạn có thể chỉ định trực tiếp tên kho khoá và tên kho khoá:

<KeyStore>myKeystore</KeyStore>
<TrustStore>myTruststore</TrustStore> 

Nếu bạn trực tiếp chỉ định tên của kho khoá hoặc kho tin cậy, thì khách hàng của Google Cloud phải liên hệ với Bộ phận hỗ trợ API Apigee Edge và khách hàng của Private Cloud phải khởi động lại một số thành phần của Edge để cập nhật chứng chỉ.

Một lựa chọn thứ ba (chỉ dành cho thiết bị đầu cuối mục tiêu/máy chủ mục tiêu) là sử dụng các biến luồng:

<KeyStore>{ssl.keystore}</KeyStore>
<TrustStore>{ssl.truststore}</TrustStore> 

Biến flow hoạt động với điểm cuối/máy chủ mục tiêu và cho phép bạn cập nhật kho khoá hoặc kho lưu trữ tin cậy như tệp tham chiếu. Tuy nhiên, chúng không hoạt động với các máy chủ ảo và yêu cầu bạn truyền thông tin về kho khoá, bí danh và kho lưu trữ tin cậy trong mọi yêu cầu.

Hạn chế trong việc sử dụng tham chiếu đến kho khoá và kho lưu trữ tin cậy

Những khách hàng sử dụng dịch vụ đám mây có tính phí và tất cả khách hàng sử dụng dịch vụ đám mây riêng tư định cấu hình TLS đều phải tính đến quy định hạn chế sau đây khi sử dụng các tệp tham chiếu đến kho khoá và kho lưu trữ tin cậy:

  • Bạn chỉ có thể sử dụng các tham chiếu kho khoá và kho lưu trữ tin cậy trong máy chủ ảo nếu chấm dứt TLS trên Bộ định tuyến Apigee.
  • Nếu bạn có trình cân bằng tải ở phía trước Bộ định tuyến Apigee và bạn chấm dứt TLS trên trình cân bằng tải, thì bạn sẽ không thể sử dụng các tệp tham chiếu kho khoá và kho lưu trữ tin cậy trong máy chủ ảo.

Nếu máy chủ ảo hiện có của bạn sử dụng kho khoá cố định hoặc tên kho lưu trữ tin cậy

Các máy chủ ảo hiện có trên Edge có thể không được định cấu hình để sử dụng tệp tham chiếu cho kho khoá và kho lưu trữ tin cậy. Trong trường hợp này, bạn có thể cập nhật máy chủ ảo để sử dụng tệp tham chiếu.

  1. Edge cho đám mây

    Để thay đổi máy chủ ảo nhằm sử dụng tệp tham chiếu đến kho khoá, bạn phải làm việc với Apigee Edge Support.

  2. Edge cho đám mây riêng tư

    Cách chuyển đổi máy chủ ảo để sử dụng tệp đối chiếu:

    1. Cập nhật máy chủ ảo để sử dụng tệp đối chiếu.
    2. Khởi động lại Bộ định tuyến.
    Để tìm hiểu thêm, hãy xem phần "Sửa đổi máy chủ ảo để sử dụng tệp tham chiếu đến kho khoá và kho tin cậy" trong bài viết Định cấu hình quyền truy cập TLS vào một API cho Đám mây riêng tư.

Giới thiệu về việc sử dụng khoá và chứng chỉ dùng thử miễn phí Apigee

Nếu có tài khoản Edge có tính phí trên Cloud và chưa có chứng chỉ cũng như khoá TLS, bạn có thể tạo một máy chủ ảo sử dụng khoá và chứng chỉ dùng thử miễn phí Apigee. Điều đó có nghĩa là bạn có thể tạo máy chủ ảo mà không cần tạo kho khoá trước.

Đối tượng XML xác định máy chủ ảo bằng khoá và chứng chỉ dùng thử miễn phí Apigee sẽ bỏ qua các phần tử <KeyStore><KeyAlias> mà thay thế bằng phần tử <UseBuiltInFreeTrialCert>, như minh hoạ dưới đây:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

Nếu đang thực hiện TLS hai chiều, bạn vẫn phải đặt phần tử <ClientAuthEnabled> thành true và chỉ định một kho lưu trữ tin cậy bằng cách sử dụng tệp tham chiếu với phần tử <TrustStore>.

Xem bài viết Định cấu hình máy chủ ảo cho đám mây để biết thêm thông tin.

Giới thiệu về cách định cấu hình TLS

Hai yếu tố chính xác định cách bạn thực hiện cấu hình TLS:

  • Bạn là khách hàng của Edge Cloud hay Cloud Private?
  • Làm cách nào để cập nhật các chứng chỉ đã hết hạn hoặc sắp hết hạn?

Tuỳ chọn cấu hình đám mây và đám mây riêng tư

Bảng sau đây trình bày các lựa chọn cấu hình dành cho khách hàng Đám mây và đám mây riêng tư:

Đám mây riêng Đám mây
Người tổ chức ảo Toàn quyền kiểm soát Chỉ kiểm soát hoàn toàn đối với các tài khoản trả phí
Đích đến/máy chủ mục tiêu Toàn quyền kiểm soát Toàn quyền kiểm soát

Khách hàng sử dụng dịch vụ đám mây riêng tư có toàn quyền kiểm soát cấu hình của cả máy chủ ảo và điểm cuối/máy chủ mục tiêu. Quyền kiểm soát đó bao gồm khả năng tạo và xoá máy chủ ảo, cũng như đặt tất cả thuộc tính trên một máy chủ ảo.

Tất cả khách hàng của Google Cloud, cả khách hàng có trả phí và dịch vụ đánh giá, đều có toàn quyền kiểm soát cấu hình của điểm cuối/máy chủ mục tiêu. Ngoài ra, những khách hàng sử dụng dịch vụ đám mây có tính phí có toàn quyền kiểm soát các máy chủ ảo, bao gồm cả các tài sản TLS.

Xử lý các chứng chỉ đã hết hạn

Nếu chứng chỉ TLS hết hạn hoặc nếu cấu hình hệ thống của bạn thay đổi khiến chứng chỉ không còn hợp lệ, thì bạn cần cập nhật chứng chỉ. Khi định cấu hình TLS cho một máy chủ ảo hoặc máy chủ điểm cuối/mục tiêu đích, bạn nên quyết định cách thực hiện bản cập nhật đó trước khi thực hiện bất kỳ cấu hình nào.

Khi một chứng chỉ hết hạn

Trên Edge, bạn lưu trữ các chứng chỉ ở một trong hai nơi:

  • Kho khoá – Chứa chứng chỉ TLS và khoá riêng tư dùng để xác định thực thể trong quá trình tiếp tay TLS.
  • Truststore – Chứa các chứng chỉ đáng tin cậy trên một ứng dụng TLS dùng để xác thực chứng chỉ của máy chủ TLS được cung cấp cho ứng dụng. Những chứng chỉ này thường là chứng chỉ tự ký, chứng chỉ do một CA đáng tin cậy ký hoặc chứng chỉ được dùng trong TLS hai chiều.

Khi một chứng chỉ trong kho khoá hết hạn và bạn đang dùng một tệp tham chiếu đến kho khoá, thì bạn không thể tải chứng chỉ mới lên kho khoá. Thay vào đó, bạn sẽ:

  1. Tạo kho khoá mới.
  2. Tải chứng chỉ mới lên kho khoá mới bằng cách sử dụng cùng một tên bí danh như trong kho khoá cũ.
  3. Cập nhật tệp tham chiếu trong máy chủ ảo hoặc điểm cuối máy chủ/mục tiêu đích của bạn để sử dụng kho khoá mới.

Khi một chứng chỉ trong kho lưu trữ tin cậy hết hạn và bạn đang dùng một tệp tham chiếu đến kho lưu trữ tin cậy, bạn sẽ:

  1. Tạo một kho lưu trữ tin cậy mới.
  2. Tải chứng chỉ mới lên kho lưu trữ uy tín mới. Tên bí danh không quan trọng đối với kho lưu trữ tin cậy. Lưu ý: Nếu chứng chỉ thuộc một chuỗi, bạn phải tạo một tệp duy nhất chứa tất cả các chứng chỉ rồi tải tệp đó lên một bí danh duy nhất hoặc tải riêng tất cả chứng chỉ trong chuỗi lên kho tin cậy bằng cách sử dụng một đại diện khác cho mỗi chứng chỉ.
  3. Cập nhật tệp tham chiếu trong máy chủ ảo hoặc điểm cuối máy chủ/mục tiêu mục tiêu của bạn để sử dụng kho lưu trữ tin cậy mới.

Tóm tắt các phương thức cập nhật chứng chỉ đã hết hạn

Phương thức mà bạn sử dụng để chỉ định tên của kho khoá và kho lưu trữ tin cậy trong máy chủ ảo hoặc điểm cuối/máy chủ mục tiêu đích sẽ xác định cách bạn thực hiện cập nhật chứng chỉ. Bạn có thể sử dụng:

  • Tài liệu tham khảo
  • Tên trực tiếp
  • Biến luồng

Mỗi phương thức này đều có các hậu quả khác nhau trong quá trình cập nhật, như mô tả trong bảng sau. Như bạn có thể thấy, tệp đối chiếu mang lại sự linh hoạt tối đa cho cả khách hàng sử dụng dịch vụ đám mây và dịch vụ đám mây riêng tư:

Loại cấu hình Cách cập nhật/thay thế chứng chỉ Đám mây riêng Đám mây
Tài liệu tham khảo (Được đề xuất) Đối với kho khoá, hãy tạo kho khoá mới bằng một tên mới và một bí danh có cùng tên với bí danh cũ.

Đối với kho tin cậy, hãy tạo một kho tin cậy với tên mới.

Cập nhật tệp tham chiếu đến kho khoá hoặc kho lưu trữ tin cậy.

Không cần khởi động lại Bộ định tuyến hoặc Bộ xử lý tin nhắn.

Cập nhật tệp tham chiếu đến kho khoá hoặc kho lưu trữ tin cậy.

Bạn không cần liên hệ với Nhóm hỗ trợ Apigee.

Biến luồng (chỉ điểm cuối mục tiêu) Đối với kho khoá, hãy tạo kho khoá mới bằng một tên mới và một bí danh có cùng tên hoặc một tên mới.

Đối với kho tin cậy, hãy tạo một kho tin cậy với tên mới.

Truyền var flow đã cập nhật cho mỗi yêu cầu bằng tên của kho khoá, bí danh hoặc kho lưu trữ tin cậy mới.

Không cần khởi động lại Bộ định tuyến hoặc Bộ xử lý tin nhắn.

Truyền var flow đã cập nhật cho mỗi yêu cầu bằng tên của kho khoá, bí danh hoặc kho lưu trữ tin cậy mới.

Bạn không cần liên hệ với Nhóm hỗ trợ Apigee.

Trực tiếp Tạo một kho khoá, bí danh, kho khoá tin cậy mới. Cập nhật máy chủ ảo rồi khởi động lại Bộ định tuyến.

Nếu kho lưu trữ tin cậy được một máy chủ đích/điểm cuối mục tiêu sử dụng, hãy triển khai lại proxy.

Đối với máy chủ ảo, hãy liên hệ với Nhóm hỗ trợ API Apigee để khởi động lại Bộ định tuyến.

Nếu kho lưu trữ tin cậy được một máy chủ đích/điểm cuối mục tiêu sử dụng, hãy triển khai lại proxy.

Trực tiếp Xoá kho khoá hoặc kho khoá tin cậy rồi tạo lại kho khoá đó bằng cùng một tên. Không yêu cầu cập nhật máy chủ ảo, không cần khởi động lại Bộ định tuyến. Tuy nhiên, các yêu cầu API sẽ không thành công cho đến khi kho khoá và bí danh mới được đặt xong.

Nếu kho khoá được dùng cho TLS hai chiều giữa Edge và dịch vụ phụ trợ, hãy khởi động lại Bộ xử lý thông báo.

Không yêu cầu cập nhật máy chủ ảo. Tuy nhiên, các yêu cầu API sẽ không thành công cho đến khi kho khoá và bí danh mới được đặt.

Nếu kho khoá được dùng cho TLS hai chiều giữa Edge và dịch vụ phụ trợ, hãy liên hệ với Bộ phận hỗ trợ Apigee để khởi động lại Bộ xử lý thông báo.

Trực tiếp Riêng đối với kho tin cậy, hãy tải một chứng chỉ mới lên kho tin cậy. Nếu kho lưu trữ tin cậy được một máy chủ ảo sử dụng, hãy khởi động lại Bộ định tuyến.

Nếu một máy chủ mục tiêu/điểm cuối mục tiêu sử dụng kho tin cậy, hãy khởi động lại Bộ xử lý thông báo.

Đối với máy chủ ảo, hãy liên hệ với Nhóm hỗ trợ API Apigee để khởi động lại Bộ định tuyến Edge.

Nếu một máy chủ mục tiêu/điểm cuối mục tiêu sử dụng kho tin cậy, hãy liên hệ với Nhóm hỗ trợ API Apigee để khởi động lại Bộ xử lý tin nhắn.