Các tuỳ 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 trình bày thông tin tổng quan về cách định cấu hình TLS trên Edge cho hai khu vực chức năng:

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

Cả hai loại quyền truy cập này đều được hiển thị bên dưới:

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

Máy chủ lưu trữ ảo có thể được biểu thị bằng một đối tượng XML, ở 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ủ mục tiêu.

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

Phần tử Nội dung mô tả
<Enabled>

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

Đố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 khách API hoặc giữa Edge và phần phụ trợ đích.

Để bật TLS hai chiều, bạn thường phải thiết lập kho tin cậy trên Edge.

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

Nếu giá trị là true, Edge sẽ bỏ qua lỗi chứng chỉ TLS. Hợp lệ khi định cấu hình TLS cho máy chủ mục tiêu và điểm cuối mục tiêu, cũng như khi định cấu hình máy chủ lưu trữ ảo sử dụng TLS hai chiều. Giá trị mặc định là false.

Khi được sử dụng với điểm cuối mục tiêu/máy chủ 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 sẽ không thành công.

<CommonName>

Nếu được chỉ định, giá trị dùng để xác thực tên chung của chứng chỉ mục tiêu. Giá trị này chỉ hợp lệ cho cấu hình TargetEndpoint và TargetServer. Giá trị này không hợp lệ cho cấu hình VirtualHost.

Theo mặc định, giá trị được chỉ định sẽ khớp chính xác với tên chung 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 chung trong chứng chỉ mục tiêu.

Nếu muốn, Apigee có thể so khớp bằng ký tự đại diện bằng thuộc tính wildcardMatch.

Ví dụ: một tên chung đượ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 tin cậy được chỉ định bằng cách sử dụng tệp tham chiếu, ở dạng:

<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 tin cậy. Tham chiếu là một biến chứa tên của kho khoá hoặc kho tin cậy, thay vì chỉ định trực tiếp tên kho khoá. Trong ví dụ này:

  • myKeystoreRef là một tệp 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ữ đáng 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ủ lưu trữ ảo hoặc điểm cuối mục tiêu/máy chủ mục tiêu để chỉ định kho khoá hoặc kho tin cậy chứa chứng chỉ mới. Ưu điểm của tệp tham chiếu là bạn có thể sửa đổi giá trị của tệp tham chiếu để thay đổi kho khoá hoặc kho tin cậy mà không cần sửa đổi máy chủ ảo hoặc điểm cuối mục tiêu/máy chủ mục tiêu:

  • Đối với khách hàng Cloud: Bạn không cần liên hệ với Nhóm hỗ trợ Apigee Edge để thay đổi giá trị của tệp đối chiếu.
  • Đối với khách hàng sử dụng đám mây riêng: Việc thay đổi giá trị của tệp đối chiếu không yêu cầu bạn 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ý thông báo.

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

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

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

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

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

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

Các quy định hạn chế trong việc sử dụng tham chiếu đến kho khoá và kho tin cậy

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

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

Nếu máy chủ ảo hiện tại của bạn sử dụng tên kho khoá hoặc kho tin cậy theo nghĩa đen

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 các tệp tham chiếu cho kho khoá và kho 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 để sử dụng tệp tham chiếu đến kho khoá, bạn phải làm việc với Nhóm hỗ trợ Apigee Edge.

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

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

    1. Cập nhật máy chủ lưu trữ ảo để sử dụng tệp tham chiếu.
    2. Khởi động lại bộ định tuyến.
    Hãy xem phần "Sửa đổi máy chủ ảo để sử dụng các 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 API cho đám mây riêng để biết thêm thông tin.

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

Nếu có tài khoản Edge for Cloud trả phí và chưa có chứng chỉ và khoá TLS, bạn có thể tạo một máy chủ lưu trữ ảo sử dụng chứng chỉ và khoá dùng thử miễn phí của 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 cách sử dụng chứng chỉ và khoá dùng thử miễn phí của Apigee sẽ bỏ qua các phần tử <KeyStore><KeyAlias>, đồng thời thay thế các phần tử đó 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 kho lưu trữ đáng tin cậy bằng cách sử dụng thông tin tham chiếu với phần tử <TrustStore>.

Hãy xem phần Định cấu hình máy chủ ảo cho Cloud để biết thêm thông tin.

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

Có hai yếu tố chính quyết định cách bạn định cấu hình TLS:

  • Bạn là khách hàng của dịch vụ Đám mây cạnh hay Đám mây riêng?
  • Bạn sẽ cập nhật các chứng chỉ đã hết hạn hoặc sắp hết hạn như thế nào?

Các tuỳ chọn cấu hình trên đám mây và đám mây riêng

Bảng sau đây cho thấy các tuỳ chọn cấu hình khác nhau cho khách hàng sử dụng Cloud và Private Cloud:

Đám mây riêng Đám mây
Máy chủ ảo Toàn quyền kiểm soát Chỉ có toàn quyền kiểm soát đối với tài khoản trả phí
Điểm cuối mục tiêu/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 có toàn quyền kiểm soát cấu hình của cả máy chủ lưu trữ ả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ư thiết lập tất cả thuộc tính trên máy chủ ảo.

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

Xử lý 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áy chủ lưu trữ ảo hoặc điểm cuối mục tiêu/máy chủ mục tiêu, bạn nên quyết định cách thực hiện cập nhật đó trước khi thực hiện bất kỳ cấu hình nào.

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

Trên Edge, bạn có thể lưu trữ 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 bắt tay TLS.
  • Truststore – Chứa các chứng chỉ đáng tin cậy trên ứng dụng TLS dùng để xác thực chứng chỉ của máy chủ TLS được trình bày cho ứng dụng. Các 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 sử dụng tham chiếu đến kho khoá, bạn không thể tải chứng chỉ mới lên kho khoá. Thay vào đó, bạn:

  1. Tạo một 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ủ lưu trữ ảo hoặc máy chủ mục tiêu/điểm cuối mục tiêu để 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 sử dụng tham chiếu đến kho lưu trữ tin cậy, bạn sẽ:

  1. Tạo một kho tin cậy mới.
  2. Tải chứng chỉ mới lên kho tin cậy mới. Tên bí danh không quan trọng đối với kho tin cậy. Lưu ý: Nếu một chứng chỉ là một phần của chuỗi, thì bạn phải tạo một tệp chứa tất cả chứng chỉ và tải tệp đó lên một bí danh duy nhất, hoặc tải tất cả chứng chỉ trong chuỗi lên kho tin cậy riêng biệt bằng cách sử dụng một bí danh khác nhau cho mỗi chứng chỉ.
  3. Cập nhật tệp tham chiếu trong máy chủ lưu trữ ảo hoặc máy chủ mục tiêu/điểm cuối mục tiêu để sử dụng kho 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 tin cậy trong máy chủ lưu trữ ảo hoặc điểm cuối mục tiêu/máy chủ mục tiêu sẽ xác định cách bạn thực hiện việc 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 flow

Mỗi phương thức trong số này đều có những tác động khác nhau đến quy 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 cao nhất cho cả khách hàng sử dụng dịch vụ trên đám mây và trên đám mây riêng:

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 (Nên dùng) Đối với kho khoá, hãy tạo kho khoá mới có tên mới và bí danh có tên giống với bí danh cũ.

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

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

Bạn không cần khởi động lại Bộ định tuyến hoặc Bộ xử lý thông báo.

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

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

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

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

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

Bạn không cần khởi động lại Bộ định tuyến hoặc Bộ xử lý thông báo.

Truyền biến flow đã cập nhật trên mỗi yêu cầu bằng tên của kho khoá, bí danh hoặc kho 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 kho khoá, bí danh, kho tin cậy mới. Cập nhật máy chủ ảo và khởi động lại Bộ định tuyến.

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

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

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

Trực tiếp Xoá kho khoá hoặc kho tin cậy rồi tạo lại kho đó với cùng tên. Không cần 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 bạn đặt kho khoá và bí danh mới.

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 Trình xử lý thông báo.

Không cần 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 bạn đặt kho khoá và tên đại diện mới.

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 Nhóm hỗ trợ Apigee Edge để khởi động lại Trình xử lý tin nhắn.

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

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

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

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