更新 Cloud 的傳輸層安全標準 (TLS) 憑證

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

您在虛擬主機或目標端點/目標伺服器中指定 KeyStore 和 Truststore 名稱的方法,將決定憑證更新作業的方式。您可以使用下列指令指定 KeyStore 和 Truststore 的名稱:

  • 參考資料 - 建議
  • 直接名稱
  • 流程變數

這兩種方法對憑證更新程序的影響都不同,如下表所述。

設定類型 如何更新/替換憑證 如何更新虛擬主機、目標端點/目標伺服器
參考資料 (建議)

針對 KeyStore,建立具有「新名稱」和「名稱」的別名的新 KeyStore。

請為信任儲存庫建立新名稱

更新 KeyStore 或 Truststore 的參照。

無須與 Apigee Edge 支援團隊聯絡。

流程變數 (僅限目標端點)

針對 KeyStore,建立具有新名稱和別名 (或新名稱) 的 KeyStore。

請為信任儲存庫建立新名稱

針對每個要求,使用新 KeyStore、別名或信任儲存庫的名稱傳遞更新後的流程變數。

無須與 Apigee Edge 支援團隊聯絡。

直接 建立新的 KeyStore、別名、信任儲存庫。

如果是虛擬主機,請Apigee Edge 支援團隊聯絡,重新啟動路由器。

如果目標端點/目標伺服器使用信任儲存庫,請重新部署 Proxy。

直接 刪除 KeyStore 或 TrustStore,並以相同的名稱重新建立。

無須更新虛擬主機。不過,您必須先設定新的 KeyStore 和別名,API 要求就會失敗。

如果 KeyStore 用於 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

更新憑證後,請使用相同的指令進行測試。

決定虛擬主機或目標端點/目標伺服器參照 KeyStore 和 Truststore 的方式

  1. 前往 https://enterprise.apigee.com 登入 Edge 管理 UI。
  2. 在 Edge Management UI 選單中,選取貴機構名稱。
  3. 如果是虛擬主機,請指定虛擬主機如何指定 KeyStore 和 Truststore。
    1. 視您的 Edge UI 版本而定:
      1. 如果您使用的是傳統邊緣 UI,請依序選取「API」>「環境設定」
      2. 如果您使用的是「New Edge UI」,請依序選取「Admin」>「Environments」
    2. 選取「Virtual Hosts」分頁標籤。
    3. 針對您要更新的特定虛擬主機,選取「Show」按鈕以顯示其屬性。螢幕包含下列屬性:
      1. Key Store:目前 KeyStore 的名稱,通常指定為 ref://mykeystoreref 中的參照。

        或者,您也可透過直接名稱 (格式為 myKeystoreName) 指定,也可能由流程變數 (格式為 {ssl.keystore}) 指定。
      2. 金鑰別名:這個屬性的值是 KeyStore 中的別名名稱。新的 KeyStore 必須建立同名的別名。
      3. Trust Store:目前信任儲存庫的名稱 (如有),通常在 ref://mytruststoreref 中指定為參照。

        或者,您也可透過直接名稱 (格式為 myTruststoreName) 指定,也可能由流程變數 (格式為 {ssl.truststorestore}) 指定。
  4. 如為目標端點/目標伺服器,請指定目標端點如何指定 KeyStore 和 Truststore:
    1. 在 Edge Management UI 選單中選取「API」
    2. 選取 API Proxy 的名稱。
    3. 選取「開發」分頁標籤。
    4. 在「目標端點」下方,選取「預設」
    5. 程式碼區域會顯示 TargetEndpoint 定義。查看 <SSLInfo> 元素,瞭解 KeyStore/truststore 的定義。

      注意:如果目標端點使用目標伺服器,則目標端點的 XML 定義如下所示,其中 <LoadBalancer> 標記會指定 API Proxy 使用的目標伺服器。
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <LoadBalancer>
            <Server name="target1" />
            <Server name="target2" />
          </LoadBalancer>
          <Path>/test</Path>
        </HTTPTargetConnection>
          …
      </TargetEndpoint>
      檢查目標伺服器定義中的 <SSLInfo> 元素,決定 KeyStore/truststore 的定義。

更新 KeyStore 中的 TLS 憑證

KeyStore 中的憑證到期後,您就無法將新憑證上傳至 KeyStore。而是必須建立新的 KeyStore 並上傳憑證,然後將虛擬主機或目標伺服器/目標端點改為使用新的 KeyStore。

一般而言,您會在目前憑證到期前建立新的 KeyStore,然後更新虛擬主機或目標端點以使用新的 KeyStore,以便繼續因憑證過期而中斷服務要求。確認新的 KeyStore 能正常運作後,您就可以刪除舊的 KeyStore。

如為以雲端為基礎的 Edge 部署作業:

  1. 按照 使用 Edge UI 建立 KeyStore 和 TrustStore 的說明,建立新的 KeyStore 並上傳憑證和金鑰。

    在新的 KeyStore 中,確保金鑰別名的名稱與現有金鑰庫使用的名稱相同。

  2. 針對傳入連線使用的虛擬主機 (代表向 Edge 發出的 API 要求):
    1. 如果您的虛擬主機使用 KeyStore 的參照,請更新參照。
    2. 如果您的虛擬主機採用 KeyStore 的直接名稱,請與 Apigee Edge 支援團隊聯絡。
  3. 針對傳出連線使用的目標端點/目標伺服器 (從 Apigee 到後端伺服器):
    1. 如果目標端點/目標伺服器使用 KeyStore 的參照,請更新參照。因此您不必重新部署 Proxy。
    2. 如果目標端點/目標伺服器使用流量變數,請更新流程變數。因此您不必重新部署 Proxy。
    3. 如果目標端點/目標伺服器使用 KeyStore 的直接名稱,請為參照舊 KeyStore 和金鑰別名的所有 API Proxy 更新目標端點/目標伺服器設定,以參照新的 KeyStore 和金鑰別名。

      然後必須重新部署 Proxy。

  4. 確認新的 KeyStore 可以正常運作後,請刪除含有過期憑證和金鑰的舊 KeyStore。

更新信任儲存庫中的 TLS 憑證

信任儲存庫中的憑證到期後,您通常會建立新的信任儲存庫並上傳憑證,然後將虛擬主機或目標伺服器/目標端點更新為使用新的信任儲存庫。

如果憑證隸屬於某個鏈結,您必須建立包含所有憑證的單一檔案,然後將該檔案上傳到單一別名,或為每個憑證使用不同的別名,將鏈結中的所有憑證分別上傳至信任存放區。

一般來說,您會在目前憑證到期前建立新的信任儲存庫,然後更新虛擬主機或目標端點以使用新的信任儲存庫,以便繼續服務要求,不會因憑證過期而中斷。確認新的信任存放區運作正常後,您就可以刪除舊的信任存放區。

如為以雲端為基礎的 Edge 部署作業:

  1. 按照使用 Edge UI 建立 KeyStore 和 TrustStore 的說明,建立新的信任儲存庫並上傳憑證。

    將新憑證上傳到新的信任儲存庫時,別名名稱沒有影響。

  2. 針對傳入連線使用的虛擬主機 (代表向 Edge 發出的 API 要求):
    1. 如果您的虛擬主機使用信任儲存庫的參照,請更新參照。
    2. 如果您的虛擬主機是信任儲存庫的直接名稱,請與 Apigee Edge 支援團隊聯絡。
  3. 針對傳出連線使用的目標端點/目標伺服器 (從 Apigee 到後端伺服器):
    1. 如果目標端點/目標伺服器使用信任儲存庫的參照,請更新參照。因此您不必重新部署 Proxy。
    2. 如果目標端點/目標伺服器使用流量變數,請更新流程變數。因此您不必重新部署 Proxy。
    3. 如果目標端點/目標伺服器使用信任儲存庫的直接名稱,請為參照舊信任儲存庫的所有 API Proxy 更新目標端點/目標伺服器設定,以參照新的 KeyStore 和金鑰別名。

      然後必須重新部署 Proxy。

  4. 確認新信任存放區運作正常後,請刪除含有過期憑證的舊版信任儲存庫。