Các tuỳ chọn để định cấu hình TLS

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

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

  1. Quyền truy cập vào các 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 bạn bằng Edge. Sử dụng các điểm cuối đích và máy chủ đích 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 trình bày bên dưới:

Giới thiệu về cách thiết lập các lựa chọn TLS trong máy chủ ảo hoặc điểm cuối mục tiêu/máy chủ mục tiêu

Máy chủ ảo có thể được biểu thị bằng một đối tượng XML, dưới 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>

Vùng 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 dùng cùng một thẻ <SSLInfo> để định cấu hình điểm cuối đích 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:

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

Cho phép 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>

Cho phép TLS hai chiều giữa Edge và ứng dụng 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 một truststore trên Edge.

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

Nếu đặt là true, 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 các 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 điểm cuối đích/máy chủ đích, 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, đây là 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ác cấu hình TargetEndpoint và TargetServer. Không hợp lệ đối với cấu hình VirtualHost.

Theo mặc định, giá trị được chỉ định sẽ được so 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ủ đích nếu giá trị chính xác *.myhost.com được chỉ định làm tên chung trong chứng chỉ đích.

Nếu muốn, Apigee có thể thực hiện so khớp bằng ký tự đại diện bằng cách sử dụ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 thiết lập 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ữ đáng tin cậy được chỉ định bằng cách sử dụng các tham chiếu, dưới dạng:

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

Apigee đặc biệt khuyên bạn nên luôn sử dụng các tham chiếu đến kho khoá và kho lưu trữ đáng 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ài liệu tham khảo 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 tham chiếu chứa tên của truststore. Trong ví dụ này, tên của truststore là myTruststore.

Khi chứng chỉ hết hạn, bạn phải cập nhật máy chủ ảo hoặc điểm cuối đích/máy chủ đích để chỉ định kho khoá hoặc kho tin cậy chứa chứng chỉ mới. Ưu điểm của một tham chiếu là bạn có thể sửa đổi giá trị của tham chiếu để thay đổi kho khoá hoặc kho tin cậy mà không cần phải sửa đổi máy chủ ảo hoặc chính đ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 tham 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 tham 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à Trình xử lý thông báo.

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

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

Nếu 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 Đám mây riêng phải khởi động lại một số thành phần Edge để cập nhật chứng chỉ.

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

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

Các biến luồng hoạt động cho phép bạn cập nhật kho khoá hoặc kho tin cậy như các tham chiếu. Tuy nhiên, chúng không hoạt động với máy chủ ả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.

Hạn chế khi sử dụng các tham chiếu đến kho khoá và kho lưu trữ đáng 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 lưu ý đến hạn chế sau đây khi sử dụng các tham chiếu đến kho khoá và kho tin cậy:

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

  1. Edge cho đám mây

    Để thay đổi máy chủ ảo nhằm sử dụng thông tin 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 một tham chiếu:

    1. Cập nhật máy chủ ảo để sử dụng một 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 tham chiếu đến kho khoá và kho tin cậy" trong phần Định cấu hình quyền truy cập TLS vào một API cho Đám mây riêng để biết thêm thông tin.

Giới thiệu về cách sử dụng khoá và chứng chỉ 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ó khoá và chứng chỉ 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í 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.

Một đối tượng XML xác định máy chủ lưu trữ ả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ế chúng 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 truststore bằng cách sử dụng reference 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ó 2 yếu tố chính quyết định cách bạn thực hiện cấu hình TLS:

  • Bạn có phải là khách hàng của Edge Cloud hay Private Cloud không?
  • Bạn sẽ cập nhật những chứng chỉ đã hết hạn hoặc sắp hết hạn như thế nào?

Các lựa chọn về cấu hình Đám mây và Đám mây riêng tư

Bảng sau đây cho thấy các lựa 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 tư Đám mây
Máy chủ ảo Toàn quyền kiểm soát Chỉ tài khoản trả phí mới có toàn quyền kiểm soát
Điểm cuối đích/máy chủ đích Toàn quyền kiểm soát Toàn quyền kiểm soát

Khách hàng sử dụng Đá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ục tiêu/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ả các thuộc tính trên một máy chủ ảo.

Tất cả khách hàng Cloud, cả khách hàng trả phí và khách hàng đánh giá, đều có toàn quyền kiểm soát cấu hình của các máy chủ đích/điểm cuối đích. Ngoài ra, khách hàng Cloud có trả phí có toàn quyền kiểm soát máy chủ ảo, bao gồm cả các thuộc tính 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ột máy chủ ảo hoặc điểm cuối đích/máy chủ đích, bạn nên quyết định cách thực hiện việc 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 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 một ứ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 một thông tin tham chiếu đến kho khoá, bạn không thể tải một 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 tên bí danh như trong kho khoá cũ.
  3. Cập nhật thông tin tham chiếu trong máy chủ ảo hoặc máy chủ đích/điểm cuối đích để sử dụng kho khoá mới.

Khi một chứng chỉ trong truststore hết hạn và bạn đang sử dụng thông tin tham chiếu đến truststore, bạn sẽ:

  1. Tạo một kho khoá tin cậy mới.
  2. Tải chứng chỉ mới lên truststore mới. Tên bí danh không quan trọng đối với truststore. 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 duy nhất chứa tất cả các chứng chỉ và tải tệp đó lên một bí danh duy nhất, hoặc tải riêng tất cả các chứng chỉ trong chuỗi lên truststore bằng một bí danh khác cho mỗi chứng chỉ.
  3. Cập nhật thông tin tham chiếu trong máy chủ ảo hoặc máy chủ đích/điểm cuối đích để sử dụng truststore 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 dùng để chỉ định tên của kho khoá và kho tin cậy trong máy chủ ảo hoặc điểm cuối đích/máy chủ đích 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 dòng

Mỗi phương thức này có những hậu quả khác nhau đối với quy trình cập nhật, như mô tả trong bảng sau. Như bạn có thể thấy, các tham chiếu mang lại sự linh hoạt cao nhất cho cả khách hàng sử dụng Đám mây và Đá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 tư Đám mây
Tham chiếu (Nên dùng) Đối với kho khoá, hãy tạo kho khoá mới có tên mới và một bí danh có cùng tên với bí danh cũ.

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

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

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

Cập nhật thông tin 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.

Các 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 có tên mới và một bí danh có cùng tên hoặc có tên mới.

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

Truyền biến quy trình đã 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 khoá tin cậy mới.

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

Truyền biến quy trình đã 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 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 một kho khoá, bí danh, kho 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 đích/máy chủ đích sử dụng truststore, 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ợ Apigee Edge để khởi động lại Bộ định tuyến.

Nếu điểm cuối đích/máy chủ đích sử dụng truststore, 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 bằng 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 thiết lập 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 thiết lập 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 liên hệ với Nhóm hỗ trợ Apigee Edge để khởi động lại Trình xử lý thông báo.

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

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

Đối với máy chủ ả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 điểm cuối đích/máy chủ đích sử dụng truststore, 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.