查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
本文件概述如何為 Edge 設定 TLS 以執行兩項功能 區域:
- 透過 API 用戶端存取您的 API Proxy。在 Edge 上使用虛擬主機 用於設定 TLS 的路由器。
- Edge 對後端服務的存取權。使用目標端點和目標 伺服器來設定 TLS。
這兩種存取權類型如下所示:
簡介 在虛擬主機或目標端點/目標伺服器中設定 TLS 選項
虛擬主機可以用 XML 物件表示,格式如下:
<VirtualHost name="secure"> ... <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://myKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> <TrustStore>ref://myTruststoreRef</TrustStore> <IgnoreValidationErrors>false</IgnoreValidationErrors> </SSLInfo> </VirtualHost>
您在設定 TLS 時所修改的虛擬主機區域是由 <SSLInfo> 標記定義。您可以使用 相同的 <SSLInfo> 標記來設定 目標端點或目標伺服器
下表說明 <SSLInfo> 標記使用的 TLS 設定元素:
元素 | 說明 |
---|---|
<Enabled> |
啟用 Edge 和 API 用戶端之間的單向 TLS,或在 Edge 和目標之間啟用單向 TLS 後端。 如為虛擬主機,您必須定義包含憑證和私密金鑰的 KeyStore 鍵。 |
<ClientAuthEnabled> |
啟用 Edge 和 API 用戶端之間的雙向 TLS,或在 Edge 和目標之間啟用 後端。 如要啟用雙向 TLS,通常需要在 Edge 上設定信任存放區。 |
<KeyStore> | KeyStore。 |
<KeyAlias> | 您將憑證和私密金鑰上傳到 KeyStore 時指定的別名。 |
<TrustStore> | 信任存放區 |
<IgnoreValidationErrors> | 如果設為 True,Edge 會忽略 TLS 憑證錯誤。為下列使用者設定 TLS 時有效 目標伺服器和目標端點,以及在設定使用雙向連線的虛擬主機時 TLS:預設值為否。 與目標端點/目標伺服器搭配使用時,如果後端系統使用 SNI 並傳回憑證 主體的辨別名稱 (DN) 與主機名稱不符 忽略錯誤,且連線失敗。 |
<CommonName> | 如果有指定,系統會驗證目標憑證共同名稱的值。 這個值僅適用於 TargetEndpoint 和 TargetServer 設定。不 適用於 VirtualHost 設定。 根據預設,指定的值會與目標憑證的常見名稱「完全」比對。
例如,使用 或者,Apigee 也可使用 舉例來說,系統會將目標憑證中指定為「 <CommonName wildcardMatch="true">*.myhost.com</CommonName> |
關於設定 <KeyStore>以及 <TrustStore>個元素
在上方的虛擬主機範例中,KeyStore 和 Truststore 是使用 參考資料:
<KeyStore>ref://myKeystoreRef</KeyStore> <TrustStore>ref://myTruststoreRef</TrustStore>
Apigee 強烈建議您一律使用對 KeyStore 和信任存放區的參照。A 罩杯 參照是包含 KeyStore 或信任儲存庫名稱的變數 請直接指定 KeyStore 名稱在這個例子中:
myKeystoreRef
是包含 KeyStore。在這個範例中,KeyStore 的名稱是 myKeystore。myTruststoreRef
是包含 信任儲存庫在這個範例中,信任存放區的名稱是 myTruststore。
憑證到期後,您必須將虛擬主機或目標端點/目標伺服器更新至 指定包含新憑證的 KeyStore 或 TrustStore。參考檔案的好處是 您可以直接修改參照的值來變更 KeyStore 或信任儲存庫,而不必 修改虛擬主機或目標端點/目標伺服器:
- Cloud 客戶:變更參考值時不必 以便與 Apigee Edge 支援團隊聯絡。
- Private Cloud 客戶:變更參考值無法 您必須重新啟動 Edge 元件,例如路由器和訊息處理器。
或者,您也可以直接指定 KeyStore 名稱和信任儲存庫名稱:
<KeyStore>myKeystore</KeyStore> <TrustStore>myTruststore</TrustStore>
如果您直接指定 KeyStore 或信任儲存庫名稱,則 Cloud 客戶必須 與 Apigee Edge 支援團隊聯絡 和私有雲客戶必須重新啟動特定 Edge 元件才能更新憑證。
第三個選項 (僅適用於目標端點/目標伺服器) 是使用流程變數:
<KeyStore>{ssl.keystore}</KeyStore> <TrustStore>{ssl.truststore}</TrustStore>
流程變數適用於目標端點/目標伺服器,可讓您更新 KeyStore,或 就像參照一樣但不適用於虛擬主機,因此您必須通過 每次要求時取得 KeyStore、別名和信任存放區的資訊。
使用限制 KeyStore 和信任儲存庫的參照
付費 Cloud 客戶和所有設定傳輸層安全標準 (TLS) 的 Private Cloud 客戶都必須考量這一點 使用 KeyStore 和信任儲存庫的參照時會有下列限制:
- 如果終止 TLS,就只能在虛擬主機中使用 KeyStore 和信任儲存庫參照 流量
- 如果在 Apigee 路由器的前方設有負載平衡器,且您在 就無法在虛擬主機中使用 KeyStore 和信任儲存庫參照。
如果現有的虛擬主機使用常值 KeyStore 或信任儲存庫名稱
Edge 上的現有虛擬主機可能未設定為使用 KeyStore 和 信任存放區在這種情況下,您可以更新虛擬主機使用參照。
雲端邊緣技術
如要將虛擬主機變更為使用 KeyStore 參照,您必須使用 Apigee Edge 支援。
私有雲的邊緣
如要將虛擬主機轉換為使用參照,請按照下列步驟操作:
- 更新虛擬主機即可使用參照。
- 重新啟動路由器。
關於使用 Apigee 免費試用憑證和金鑰
如果您使用 Cloud 付費 Edge 帳戶,但尚未取得 TLS 憑證和金鑰,請 使用 Apigee 免費試用憑證和金鑰的虛擬主機。這表示您可以建立 不必先建立 KeyStore
一種 XML 物件,會使用 Apigee 免費試用憑證定義虛擬主機,且在這類物件中會省略
<KeyStore>
和 <KeyAlias>
元素,並替換成
<UseBuiltInFreeTrialCert>
元素,如下所示:
<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>myapi.apigee.net</HostAlias> </HostAliases> <Port>443</Port> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> </SSLInfo> <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert> </VirtualHost>
如果您執行雙向傳輸層安全標準 (TLS),您仍須將 <ClientAuthEnabled>
元素設為
true
,並使用帶有 <TrustStore>
元素的參照來指定信任儲存庫。
請參閱「為 Cloud 設定虛擬主機」一節。 瞭解詳情。
關於設定 TLS
執行 TLS 設定的方式主要取決於兩個主要因素:
- 您是 Edge Cloud 或 Private Cloud 客戶嗎?
- 如何更新過期或即將到期的憑證?
雲端和私有雲設定 選項
下表列出 Cloud 和 Private Cloud 的不同設定選項 客戶:
Private Cloud | 雲端 | |
---|---|---|
虛擬主機 | 完全掌控 | 僅可完全控管付費帳戶 |
目標端點/目標伺服器 | 完全掌控 | 完全掌控 |
私有雲客戶可以完全控管虛擬主機的設定 目標端點/目標伺服器這個控制項包括建立及刪除 以及設定虛擬主機上的所有屬性。
所有 Cloud 客戶 (包括付費客戶和評估作業) 都能完全掌控 目標端點/目標伺服器另外,付費 Cloud 客戶可以完全掌控 網路主機,包括 TLS 屬性
處理過期的憑證
如果 TLS 憑證過期,或是您的系統設定導致 憑證已失效,請更新憑證。為 設定 TLS 時 您應決定虛擬主機或目標端點/目標伺服器 更新並套用任何設定
憑證到期時
您可以透過 Edge 將憑證儲存在以下兩個位置的其中之一:
- Keystore:包含用於識別的 TLS 憑證和私密金鑰 在 TLS 握手期間輸入實體
- Truststore:包含用來存取 TLS 用戶端的信任憑證 驗證提供給用戶端的 TLS 伺服器憑證。這類憑證 自行簽署的憑證、由信任的 CA 簽署的憑證,或做為雙向憑證使用的憑證 TLS:
如果 KeyStore 中的憑證過期,而您使用 KeyStore,就無法將新憑證上傳至 KeyStore。而是採取下列做法:
- 建立新的 KeyStore。
- 將新憑證上傳至新的 KeyStore,且使用與先前相同的別名 舊的 KeyStore
- 更新虛擬主機或目標伺服器/目標端點的參照,以使用新的 KeyStore。
信任存放區中的憑證過期時,您會使用 信任 store,您將:
- 建立新的信任存放區。
- 將新憑證上傳至新的信任存放區。別名名稱對於信任存放區而言無關緊要, 注意:如果憑證是鏈結的一部分,您必須建立單一檔案 並將該檔案上傳至單一別名,或將該檔案 為每個憑證使用不同的別名,以單獨連結至信任存放區。
- 更新虛擬主機或目標伺服器/目標端點的參照,以使用新的 信任儲存庫
過期的更新方法摘要 憑證
指定虛擬主機中 KeyStore 和信任儲存庫名稱的方法 或目標端點/目標伺服器會決定憑證更新的方式。例如:
- 參考資料
- 直接姓名
- 流程變數
這些方法在更新程序中會有不同的影響,如 資料表。如您所見,參考資料為 Cloud 和 私有雲客戶:
設定類型 | 如何更新/替換憑證 | Private Cloud | 雲端 |
---|---|---|---|
參考資料 (建議選項) |
針對 KeyStore,以新名稱和別名
。
針對信任儲存庫,請以新名稱建立信任存放區。 |
更新 KeyStore 或信任儲存庫的參照。
不需重新啟動路由器或訊息處理器。 |
更新 KeyStore 或信任儲存庫的參照。
無須與 Apigee 支援團隊聯絡。 |
流程變異數 (僅限目標端點) |
針對 KeyStore,以新名稱和別名
相同的名稱或新名稱
針對信任儲存庫,請以新名稱建立信任存放區。 |
針對每個要求,使用新 KeyStore、別名或
信任儲存庫
不需重新啟動路由器或訊息處理器。 |
針對每個要求,使用新 KeyStore、別名或
信任儲存庫
無須與 Apigee 支援團隊聯絡。 |
直接 | 建立新的 KeyStore、別名、信任存放區。 |
更新虛擬主機並重新啟動路由器。
如果目標端點/目標伺服器使用 Truststore,請重新部署 Proxy。 |
如果是虛擬主機,請與 Apigee Edge 支援團隊聯絡,重新啟動路由器。
如果目標端點/目標伺服器使用 Truststore,請重新部署 Proxy。 |
直接 | 請刪除 KeyStore 或信任儲存庫,並以相同的名稱重新建立金鑰庫。 |
不必更新虛擬主機,不必重新啟動路由器。不過 API 要求會失敗
直到設定新的 KeyStore 和別名為止
如果 KeyStore 用於 Edge 和後端服務之間的雙向 TLS,請重新啟動 訊息處理器 |
不必更新虛擬主機。不過,到新的 KeyStore 和
別名已設定完成。
如果 KeyStore 用於 Edge 和後端服務之間的雙向 TLS, 請與 Apigee Edge 支援團隊聯絡,以重新啟動訊息處理器。 |
直接 | 僅適用於信任儲存庫,請將新的憑證上傳至信任存放區。 |
如果虛擬主機使用信任存放區,請重新啟動路由器。
如果目標端點/目標伺服器使用 Truststore,請重新啟動訊息 處理器: |
如果是虛擬主機,請與 Apigee Edge 支援團隊聯絡,以便重新啟動 Edge 路由器。
如果目標端點/目標伺服器使用信任儲存庫,請與 Apigee Edge 支援團隊聯絡,重新啟動訊息處理器。 |