您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
在虛擬主機或目標端點/目標伺服器中指定金鑰儲存區和信任儲存區名稱的方法,會決定您如何更新憑證。您可以使用下列方式指定金鑰儲存區和信任儲存庫的名稱:
- 參考資料 - 偏好
- 直接名稱
- 流程變數
如以下表格所示,這些方法對憑證更新程序有不同的影響。
| 設定類型 | 如何更新/更換憑證 | 如何更新虛擬主機、目標端點/目標伺服器 |
|---|---|---|
| 參考資料 (建議) |
如果是金鑰儲存庫,請建立新名稱的金鑰儲存庫,並使用與舊別名相同名稱的別名。 如果是信任儲存區,請建立新名稱的信任儲存區。 |
更新對金鑰儲存區或信任儲存庫的參照。 不需要與 Apigee Edge 支援團隊聯絡。 |
| 流程變數 (僅限目標端點) |
如果是金鑰儲存庫,請重新命名並建立新金鑰儲存庫,別名則可沿用或另取新名。 如果是信任儲存區,請建立新名稱的信任儲存區。 |
在每個要求中傳遞更新後的流程變數,並提供新的金鑰儲存區、別名或信任儲存區名稱。 不需要與 Apigee Edge 支援團隊聯絡。 |
| 直接 | 建立新的 KeyStore、別名和 TrustStore。 |
如果是虛擬主機,請與 Apigee Edge 支援團隊聯絡,重新啟動路由器。 如果目標端點/目標伺服器使用信任儲存區,請重新部署 Proxy。 |
| 直接 | 刪除金鑰儲存區或信任儲存庫,然後使用相同名稱重新建立。 |
無須更新虛擬主機。不過,您必須先設定新的金鑰存放區和別名,API 要求才會成功。 如果金鑰儲存區用於 Edge 與後端服務之間的雙向 TLS,請與 Apigee Edge 支援團隊聯絡,重新啟動訊息處理器。 |
| 直接 | 如果是信任儲存區,請將新憑證上傳至信任儲存庫。 |
如果是虛擬主機,請與 Apigee Edge 支援團隊聯絡,要求重新啟動 Edge Router。 如果目標端點/目標伺服器使用信任儲存區,請與 Apigee Edge 支援團隊聯絡,重新啟動訊息處理器。 |
更新前後測試憑證
請使用下列 openssl 指令測試目前的憑證,再進行更新:
echo | openssl s_client -servername HOSTNAME -connect ORG-ENV.apigee.net:443 2>/dev/null | openssl x509 -noout -dates -subject
其中 HOSTNAME 是主機別名,ORG-ENV 是機構和環境。例如:
echo | openssl s_client -servername example.com -connect myOrg-prod.apigee.net:443 2>/dev/null | openssl x509 -noout -dates -subject
輸出內容應如下所示:
notBefore=Dec 30 22:11:38 2015 GMT notAfter=Dec 30 22:11:38 2016 GMT subject= /OU=Domain Control Validated/CN=*.apigee.net
更新憑證後,請使用相同指令進行測試。
判斷虛擬主機或目標端點/目標伺服器如何參照金鑰儲存區和信任儲存區
- 前往 https://enterprise.apigee.com 登入 Edge 管理 UI。
- 在 Edge 管理 UI 選單中,選取貴機構的名稱。
-
虛擬主機:判斷虛擬主機如何指定金鑰儲存區和信任儲存區。
- 視 Edge UI 版本而定:
- 如果您使用傳統 Edge 使用者介面:選取「APIs」>「Environment Configuration」。
- 如果您使用新版 Edge 使用者介面:選取「管理」>「環境」。
- 選取「虛擬主機」分頁標籤。
- 針對要更新的特定虛擬主機,選取「顯示」按鈕,即可顯示其屬性。顯示器包含下列屬性:
- 金鑰儲存區:目前金鑰儲存區的名稱,通常在
ref://mykeystoreref中指定為參照。
或者,也可以直接指定名稱,格式為myKeystoreName,或以流程變數指定,格式為{ssl.keystore}。 - 金鑰別名。這個屬性的值是金鑰儲存庫中的別名。新的 KeyStore 必須建立名稱相同的別名。
- 信任儲存區:目前的信任儲存區名稱 (如有),通常會在
ref://mytruststoreref中指定為參照。
或者,也可以直接指定名稱,格式為myTruststoreName,或以流程變數指定,格式為{ssl.truststorestore}。
- 金鑰儲存區:目前金鑰儲存區的名稱,通常在
- 視 Edge UI 版本而定:
-
針對目標端點/目標伺服器,判斷目標端點如何指定金鑰儲存區和信任儲存區:
- 在 Edge 管理 UI 選單中,選取「API」。
- 選取 API Proxy 的名稱。
- 選取「開發」分頁標籤。
- 在「目標端點」下方,選取「預設」。
- 程式碼區域會顯示 TargetEndpoint 定義。檢查
<SSLInfo>元素,瞭解金鑰儲存區/信任儲存庫的定義方式。
注意:如果目標端點使用目標伺服器,目標端點的 XML 定義會如下所示,其中<LoadBalancer>標記會指定 API 代理使用的目標伺服器。 檢查目標伺服器定義中的<TargetEndpoint name="default"> … <HTTPTargetConnection> <LoadBalancer> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> … </TargetEndpoint><SSLInfo>元素,判斷金鑰儲存區/信任儲存區的定義方式。
更新金鑰儲存區中的 TLS 憑證
如果金鑰儲存區中的憑證過期,您就無法將新憑證上傳至金鑰儲存區。請改為建立新的金鑰儲存區並上傳憑證,然後更新虛擬主機或目標伺服器/目標端點,以使用新的金鑰儲存區。
一般來說,您會在目前的憑證到期前建立新的金鑰儲存區,然後更新虛擬主機或目標端點,使用新的金鑰儲存區,這樣就能繼續處理要求,不會因憑證過期而中斷服務。確認新金鑰儲存區運作正常後,即可刪除舊金鑰儲存區。
如果是 Edge 的雲端部署作業:
按照「 使用 Edge UI 建立 KeyStore 和 TrustStore」一文的說明,建立新的 KeyStore,並上傳憑證和金鑰。
在新 KeyStore 中,請務必使用與現有 KeyStore 中相同的金鑰別名。
-
用於連入連線的虛擬主機,也就是傳送至 Edge 的 API 要求:
- 如果虛擬主機參照金鑰儲存區,請更新參照。
- 如果虛擬主機使用金鑰儲存區的直接名稱,請與 Apigee Edge 支援團隊聯絡。
-
用於傳出連線的目標端點/目標伺服器,也就是從 Apigee 到後端伺服器:
- 如果目標端點/目標伺服器使用金鑰儲存區的參照,請更新參照。不必重新部署 Proxy。
- 如果目標端點/目標伺服器使用流程變數,請更新流程變數。不需要重新部署 Proxy。
如果目標端點/目標伺服器使用金鑰儲存區的直接名稱,請更新任何參照舊金鑰儲存區和金鑰別名的 API Proxy 的目標端點/目標伺服器設定,以參照新的金鑰儲存區和金鑰別名。
接著,您必須重新部署 Proxy。
- 確認新金鑰儲存庫運作正常後,請刪除含有過期憑證和金鑰的舊金鑰儲存庫。
更新信任儲存區中的 TLS 憑證
信任儲存區中的憑證到期時,您通常會建立新的信任儲存區並上傳憑證,然後更新虛擬主機或目標伺服器/目標端點,以使用新的信任儲存區。
如果憑證屬於鏈結,您必須建立單一檔案,其中包含所有憑證,並將該檔案上傳至單一別名,或是將鏈結中的所有憑證分別上傳至信任儲存區,並為每個憑證使用不同的別名。
一般來說,您會在目前的憑證到期前建立新的信任儲存區,然後更新虛擬主機或目標端點,使用新的信任儲存區,這樣就能繼續處理服務要求,不會因憑證過期而中斷。確認新的信任儲存庫運作正常後,即可刪除舊的信任儲存庫。
如果是 Edge 的雲端部署作業:
按照「使用 Edge UI 建立 KeyStore 和 TrustStore」一文的說明,建立新的 TrustStore 並上傳憑證。
將新憑證上傳至新的信任儲存庫時,別名名稱並不重要。
-
用於連入連線的虛擬主機,也就是傳送至 Edge 的 API 要求:
- 如果虛擬主機參照信任儲存區,請更新參照。
- 如果虛擬主機使用信任儲存區的直接名稱,請與 Apigee Edge 支援團隊聯絡。
-
用於傳出連線的目標端點/目標伺服器,也就是從 Apigee 到後端伺服器:
- 如果目標端點/目標伺服器使用信任儲存庫的參照,請更新參照。不必重新部署 Proxy。
- 如果目標端點/目標伺服器使用流程變數,請更新流程變數。不需要重新部署 Proxy。
如果目標端點/目標伺服器使用信任儲存區的直接名稱,請更新參照舊信任儲存區的任何 API Proxy 的目標端點/目標伺服器設定,以參照新的金鑰儲存區和金鑰別名。
接著,您必須重新部署 Proxy。
- 確認新的信任儲存庫運作正常後,請刪除含有過期憑證的舊信任儲存庫。