您正在查看 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 中所用憑證的建議金鑰使用方式和擴充金鑰使用方式
目的 |
金鑰使用方式 (必要) |
擴充金鑰使用方式 (選用) |
Apigee Edge 虛擬主機 KeyStore 中使用的伺服器實體憑證 |
|
TLS 網路伺服器驗證 |
Apigee Edge 虛擬主機 truststore 中使用的用戶端實體憑證 |
|
TLS Web 用戶端驗證 |
Apigee Edge 目標伺服器 truststore 中使用的伺服器實體憑證 |
|
TLS 網路伺服器驗證 |
Apigee Edge 目標伺服器 KeyStore 中使用的用戶端實體憑證 |
|
TLS Web 用戶端驗證 |
中繼與根憑證 |
|
事前準備
使用本文件中的步驟前,請務必瞭解下列主題:
- 如果不熟悉憑證鏈,請參閱信任鏈相關說明。
- 如果您不熟悉 OpenSSL 程式庫,請參閱 OpenSSL。
- 如要進一步瞭解金鑰使用擴充功能和擴充金鑰使用方式,請參閱 RFC5280。
- 如要使用本指南中的指令列範例,請安裝或更新最新版的 OpenSSL 用戶端
- 確認憑證為 PEM 格式,如果不是,請 將憑證轉換為 PEM 格式。
驗證憑證的用途
本節說明驗證憑證用途的步驟。
- 登入存在 OpenSSL 的伺服器。
-
如要取得憑證的金鑰使用情形,請執行下列 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
-
如果必須強制使用金鑰,系統會將金鑰定義如下:
openssl x509 -noout -ext keyUsage < intermediate.pem X509v3 Key Usage: critical Certificate Sign, CRL Sign
-
執行下列指令,取得憑證的擴充金鑰使用方式。如果擴充金鑰使用情形未定義為重要,則這是建議,而非強制性。
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