驗證憑證用途

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

本文說明如何先驗證憑證用途,再將憑證上傳至金鑰儲存區或信任儲存區。這個程序會使用 OpenSSL 進行驗證,適用於任何可使用 OpenSSL 的環境。

TLS 憑證通常會核發一或多個用途,供您使用。 通常是為了限制憑證中公開金鑰可執行的作業數量。憑證用途可透過下列憑證擴充功能取得:

  • 金鑰用途
  • 擴充金鑰使用方式

金鑰用途

金鑰用途擴充功能會定義憑證中所含金鑰的用途 (例如加密、簽章或憑證簽署)。如果公開金鑰用於實體驗證,憑證擴充功能應具有金鑰用途「數位簽章」

透過憑證授權單位 (CA) 程序建立的 TLS 憑證可使用下列金鑰使用方式擴充功能:

  • 數位簽章
  • 不可否認性
  • 金鑰編密
  • 資料編密
  • 金鑰協議
  • 憑證簽署
  • CRL 簽署
  • 僅限編密
  • 僅限解密

如要進一步瞭解這些金鑰用途擴充功能,請參閱 RFC5280「金鑰用途」

擴充金鑰使用方式

這個擴充功能會指出認證公開金鑰的一或多個用途,可取代或補充金鑰用途擴充功能中指出的基本用途。一般來說,這項擴充功能只會出現在終端實體憑證中。

以下是一些常見的擴充金鑰使用方式擴充功能:

  • TLS Web server authentication
  • TLS Web client authentication
  • anyExtendedKeyUsage

擴充金鑰可以是重大非重大

  • 如果擴充功能是重要擴充功能,則憑證只能用於指定用途。如果憑證用於其他用途,即違反憑證授權單位的政策。
  • 如果擴充功能是非重要功能,表示金鑰的預期用途僅供參考,並不代表 CA 會將金鑰用途限制為所指用途。不過,使用憑證的應用程式可能需要指出特定用途,憑證才能接受。

如果憑證同時包含金鑰用途欄位和擴充金鑰用途欄位,且兩者皆為重要欄位,則必須分別處理這兩個欄位,且憑證只能用於滿足兩者金鑰用途值的用途。不過,如果沒有任何用途能同時滿足這兩個金鑰用途值,則該憑證不得用於任何用途。

取得憑證時,請務必定義適當的金鑰用途,以滿足用戶端或伺服器憑證的需求,否則 TLS 握手程序會失敗。

目的 鍵使用方式

(強制)

擴充金鑰使用方式

(選填)

Apigee Edge 虛擬主機金鑰儲存區中使用的伺服器實體憑證
  • 數位簽章
  • 金鑰編密或金鑰協議
TLS 網路伺服器驗證
Apigee Edge 虛擬主機信任儲存區中使用的用戶端實體憑證
  • 數位簽章或金鑰協議
TLS 網頁用戶端驗證
Apigee Edge 目標伺服器的信任儲存區中使用的伺服器實體憑證
  • 數位簽章
  • 金鑰編密或金鑰協議
TLS 網路伺服器驗證
Apigee Edge 目標伺服器金鑰儲存區中使用的用戶端實體憑證
  • 數位簽章或金鑰協議
TLS 網頁用戶端驗證
中繼和根憑證
  • 憑證簽署
  • 憑證撤銷清單 (CRL) 簽署

事前準備

使用本文中的步驟前,請務必瞭解下列主題:

  • 如果您不熟悉憑證鏈結,請參閱「信任鏈結」。
  • 如果您不熟悉 OpenSSL 程式庫,請參閱 OpenSSL
  • 如要進一步瞭解金鑰使用方式擴充功能和擴充金鑰使用方式,請參閱 RFC5280
  • 如要使用本指南提供的指令列範例,請安裝或更新至最新版本的 OpenSSL 用戶端
  • 確認憑證為 PEM 格式,如果不是,請 將憑證轉換為 PEM 格式

驗證憑證用途

本節說明驗證憑證用途的步驟。

  1. 登入 OpenSSL 所在的伺服器。
  2. 如要取得憑證的金鑰用途,請執行下列 OpenSSL 指令:
    openssl x509 -noout -ext keyUsage < certificate

    其中 certificate 是憑證名稱。

    輸出內容範例

    openssl x509 -noout -ext keyUsage < entity.pem
    X509v3 Key Usage: critical
        Digital Signature, Key Encipherment
    
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  3. 如果金鑰用途為必要,則會定義為嚴重,如下所示:
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  4. 執行下列指令,取得憑證的擴充金鑰用途。 如果擴充金鑰用途未定義為重要,則為建議而非強制規定。
    openssl x509 -noout -ext extendedKeyUsage < certificate

    其中 certificate 是憑證名稱。

    輸出內容範例

    openssl x509 -noout -ext extendedKeyUsage < entity.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication
    
    openssl x509 -noout -ext extendedKeyUsage < intermediate.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication