您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
本文說明如何驗證憑證鏈結,再將憑證上傳至 Apigee Edge 的金鑰儲存區或信任儲存區。這個程序會使用 OpenSSL 工具包驗證憑證鏈結,適用於任何可使用 OpenSSL 的環境。
事前準備
使用本文中的步驟前,請務必瞭解下列主題:
- 如果您不熟悉憑證鏈結,請參閱「信任鏈結」。
- 如果您不熟悉 OpenSSL 程式庫,請參閱 OpenSSL。
- 如要使用本指南提供的指令列範例,請安裝或更新至最新版 OpenSSL 用戶端。
- 確認憑證採用 PEM 格式。如果憑證不是 PEM 格式,請按照「 將憑證轉換為支援的格式」一文中的操作說明,將憑證轉換為 PEM 格式。
驗證完整鏈結的憑證主體和核發單位
如要使用 OpenSSL 指令驗證憑證鏈結,請完成下列各節所述步驟:
分割憑證鏈結
驗證憑證前,請按照下列步驟將憑證鏈結分割為個別憑證:
- 登入 OpenSSL 用戶端所在的伺服器。
- 將憑證鏈結分割為下列憑證 (如果尚未分割):
-
實體憑證:
entity.pem -
中繼憑證:
intermediate.pem -
根憑證:
root.pem
下圖顯示憑證鏈結範例:
驗證憑證主體和核發機構
本節說明如何取得憑證的主體和簽發者,並驗證您是否擁有有效的憑證鏈結。
-
執行下列 OpenSSL 指令,取得鏈結中每個憑證的
Subject和Issuer(從entity到root),並確認這些憑證構成正確的憑證鏈結:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'其中 certificate 是憑證的名稱。
-
確認鏈結中的憑證符合下列規範:
-
每個憑證的
Subject都與鏈結中前一個憑證的Issuer相符 (Entity憑證除外)。 -
根憑證的
Subject和Issuer相同。
如果鏈結中的憑證符合這些規範,則視為完整且有效。
憑證鏈結驗證範例
以下範例是 OpenSSL 指令的輸出內容,適用於含有三張憑證的範例憑證鏈結:
實體憑證
openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):' Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1 Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.com中繼憑證
openssl x509 -text -in intermediate.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1根憑證
openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign在上述範例中,請注意下列事項:
-
中繼憑證的
Subject與實體憑證的Issuer相符。 -
根憑證的
Subject與中繼憑證的Issuer相符。 -
根憑證中的
Subject和Issuer相同。
從上述範例中,您可以確認範例憑證鏈結是否有效。
-
每個憑證的
驗證憑證主體和核發機構雜湊
本節說明如何取得憑證主體和簽發者的雜湊值,並驗證您是否擁有有效的憑證鏈結。
驗證憑證的雜湊序列是很好的做法,因為這有助於找出問題,例如憑證的通用名稱 (CN) 含有不必要的空格或特殊字元。
- 執行下列 OpenSSL 指令,取得鏈結中每個憑證的
hash序列 (從entity到root),並確認這些憑證構成正確的憑證鏈結。 - 確認鏈結中的憑證符合下列規範:
-
每個憑證的
Subject都與鏈結中前一個憑證的Issuer相符 (Entity憑證除外)。 -
根憑證的
Subject和Issuer相同。 -
中繼憑證的
subject hash與實體憑證的issuer hash相符。 -
根憑證的
subject hash與核發者憑證的issuer hash相符。 -
根憑證中的
subject和issuer hash相同。
openssl x509 -hash -issuer_hash -noout -in certificate
其中 certificate 是憑證的名稱。
如果鏈結中的憑證符合這些規範,則憑證鏈結會視為完整且有效。
透過雜湊序列驗證憑證鏈結的範例
以下範例是 OpenSSL 指令的輸出內容,適用於含有三張憑證的憑證鏈結:
openssl x509 -in entity.pem -hash -issuer_hash -noout
c54c66ba #this is subject hash
99bdd351 #this is issuer hash
openssl x509 -in intermediate.pem -hash -issuer_hash -noout
99bdd351
4a6481c9
openssl x509 -in root.pem -hash -issuer_hash -noout
4a6481c9
4a6481c9
在上述範例中,請注意下列事項:
從上述範例中,您可以確認範例憑證鏈結是否有效。
驗證憑證到期日
本節說明如何使用下列方法,驗證鏈結中的所有憑證是否已過期:
- 取得憑證的開始和結束日期。
- 取得有效期限狀態。
開始和結束日期
執行下列 OpenSSL 指令,取得鏈結中每個憑證的開始和結束日期 (從 entity 到 root),並確認鏈結中的所有憑證均有效 (開始日期早於今天),且未過期。
透過開始和結束日期驗證憑證到期日的範例
openssl x509 -startdate -enddate -noout -in entity.pem notBefore=Feb 6 21:57:21 2020 GMT notAfter=Feb 4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem notBefore=Jun 15 00:00:42 2017 GMT notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem notBefore=Apr 13 10:00:00 2011 GMT notAfter=Apr 13 10:00:00 2022 GMT
到期狀態
執行下列 OpenSSL 指令,檢查憑證是否已過期或即將在 N seconds 內到期。這會根據目前的系統日期,傳回憑證的到期狀態。
openssl x509 -checkend <N Seconds> -noout -in certificate
其中 certificate 是憑證的名稱。
透過 checkend 選項驗證範例憑證是否過期
下列指令會使用 0 seconds 檢查憑證是否已過期:
openssl x509 -checkend 0 -noout -in entity.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem Certificate will not expire
在本例中,訊息 Certificate will not expire 表示憑證尚未過期。