驗證憑證用途

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

這份文件會說明如何在將憑證上傳至 KeyStore 或信任儲存庫之前驗證憑證的用途。這個程序需要使用 OpenSSL 進行驗證,且適用於任何提供 OpenSSL 的環境。

傳輸層安全標準 (TLS) 憑證通常是以一或多項用途核發。一般來說,這麼做是為了限制憑證所含公開金鑰可使用的作業數量。以下憑證擴充功能提供憑證用途:

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

金鑰使用方式

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

使用憑證授權單位 (CA) 程序建立的傳輸層安全標準 (TLS) 憑證,可以使用不同的金鑰使用方式擴充功能,如下所示:

  • 數位簽名
  • 不可否認
  • 金鑰編密
  • 資料編修
  • 金鑰協議
  • 憑證簽署
  • CRL 簽署
  • 僅限編碼器
  • 僅限解密

如要進一步瞭解這些金鑰用途擴充功能,請參閱 RFC5280 金鑰使用方式一文。

擴充金鑰使用方式

這項擴充功能表示除了金鑰用途擴充功能中指定的基本用途,也可以使用經過認證的公開金鑰。一般來說,這項擴充功能只會顯示在終端實體憑證中。

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

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

擴充鍵可以是「重要」或「非關鍵」

  • 如果擴充功能「十分重要」,則憑證只能用於指定的用途或目的。如果憑證用於其他用途,則違反 CA 的政策。
  • 如果擴充功能「非重要」,表示金鑰的預期用途或用途僅供參考,且不代表 CA 會將金鑰使用範圍限制在指定用途。但是,使用憑證的應用程式可能需要指定特定用途,才算接受憑證。

如果憑證中同時包含金鑰使用欄位與延伸金鑰用途欄位,則這兩個欄位必須分開處理,且憑證只能用於同時符合「同時」金鑰使用值的用途。不過,如果沒有同時符合這兩種金鑰使用值的用途,該憑證就不得用於任何目的。

取得憑證時,請確定憑證已定義適當的金鑰使用方式,以符合用戶端或伺服器憑證的要求,如果 TLS 握手程序失敗,則不符合 TLS 握手作業失敗的情況。

目的 金鑰使用方式

(必要)

擴充金鑰使用方式

(選用)

Apigee Edge 虛擬主機 KeyStore 中使用的伺服器實體憑證
  • 數位簽名
  • 金鑰編密或金鑰協議
TLS 網路伺服器驗證
Apigee Edge 虛擬主機 truststore 中使用的用戶端實體憑證
  • 數位簽章或金鑰協議
TLS Web 用戶端驗證
Apigee Edge 目標伺服器 truststore 中使用的伺服器實體憑證
  • 數位簽名
  • 金鑰編密或金鑰協議
TLS 網路伺服器驗證
Apigee Edge 目標伺服器 KeyStore 中使用的用戶端實體憑證
  • 數位簽章或金鑰協議
TLS Web 用戶端驗證
中繼與根憑證
  • 憑證簽署
  • 憑證撤銷清單 (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