您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
傳輸層安全標準 (TLS) 的前身是安全資料傳輸層 (SSL),是建立網頁伺服器與網頁用戶端 (例如瀏覽器或應用程式) 之間加密連結的標準安全技術。加密連結可確保伺服器與用戶端之間傳輸的所有資料都維持私密狀態。如要使用 TLS,用戶端必須使用加密的 HTTPS
通訊協定,向伺服器發出安全要求,而非使用未加密的 HTTP
通訊協定。
Edge 支援雲端和地端部署中的單向 TLS 和雙向 TLS (如要瞭解支援的 TLS 版本,請參閱「支援的軟體和支援的版本」)。單向 TLS 可讓 TLS 用戶端驗證 TLS 伺服器的身分。舉例來說,在 Android 手機上執行的應用程式 (用戶端) 可以驗證 Edge API (伺服器) 的身分。
Apigee 也支援使用雙向或用戶端 TLS 的更強大驗證形式。您通常會實作雙向 TLS,以提升端對端安全性,並保護資料免受用戶端攻擊,例如用戶端詐欺或攔截式攻擊。在雙向 TLS 中,用戶端會先驗證伺服器的身分,接著伺服器會驗證用戶端的身分。
傳輸層安全標準 (TLS) 術語
設定 TLS 前,請先熟悉下列重要字詞和概念:
字詞 |
定義 |
---|---|
CA |
憑證授權單位。用來核發憑證及驗證憑證真偽的信任實體,例如 Symantec 或 VeriSign。其中一種憑證稱為「自行簽署」憑證,不需要 CA。 |
憑證鏈結 |
您通常不會有以 CA 根私密金鑰簽署的憑證。而是擁有憑證,以及一或多個形成鏈結的中繼憑證。鏈結中的最後一個中介憑證通常是由 CA 的根私密金鑰簽署。 |
CSR |
憑證簽署要求。CSR 是 TLS 伺服器根據私密金鑰產生的檔案。CSR 包含公開金鑰和其他資訊,例如機構名稱、位置和網域名稱。CA 會簽署 CSR,建立 TLS 憑證。 一般來說,當憑證過期且您想續約時,就會產生 CSR。 |
DER |
唯一編碼規則。DER 格式是憑證的二進位形式,而非 ASCII PEM 格式。有時副檔名為 .der,但通常是 .cer。如要區分 DER .cer 檔案和 PEM .cer 檔案,唯一的方法是在文字編輯器中開啟檔案,然後尋找 |
金鑰別名 |
金鑰別名可專屬識別金鑰存放區中的金鑰存放區項目 (TLS 憑證和對應的私密金鑰)。
在 Apigee Edge 中,使用 UI 或 API 將憑證/金鑰上傳至金鑰儲存區時, |
金鑰庫 |
金鑰儲存區是存放區,內含一或多個 TLS 憑證,以及對應的私密金鑰,用於在用戶端和伺服器之間的 TLS 握手期間識別實體。 在北向連線上,路由器會做為伺服器,而其憑證會儲存在 Apigee Edge 的金鑰儲存區中。 在南向連線中,訊息處理器會扮演用戶端角色,後端伺服器則扮演伺服器角色。用戶端憑證及其私密金鑰會儲存在 Apigee Edge 的 KeyStore 中。 |
P7B |
PKCS #7 或 P7B 格式通常以 Base64 ASCII 格式儲存,檔案副檔名為 .p7b 或 .p7c。P7B 憑證包含 |
PEM |
隱私強化郵件 (PEM) 格式是以文字為基礎的 ASCII 格式,是二進位唯一編碼規則 (DER) 格式的 Base64 編碼。PEM 憑證可以在任何文字編輯器中開啟,實際憑證內容會以 PEM 格式符合 X.509 格式,可儲存憑證、憑證鏈結或私密金鑰。如果您的憑證或私密金鑰不是以 PEM 檔案定義,可以使用 OpenSSL 等公用程式將其轉換為 PEM 檔案。 |
PKCS #12/PFX | PKCS #12 或 PFX 格式是二進位格式,可將伺服器憑證、任何中繼憑證和私密金鑰儲存在一個可加密的檔案中。PFX 檔案的副檔名通常是 .pfx 和 .p12。PFX 檔案通常用於 Windows 電腦,可匯入及匯出憑證和私密金鑰。 |
私密金鑰 |
用於 TLS 伺服器解密資料。只有 TLS 伺服器擁有私密金鑰,不會與 TLS 用戶端共用。 |
公開金鑰 |
用於加密從 TLS 用戶端傳送至 TLS 伺服器的資料。公開金鑰會納入憑證中。所有 TLS 用戶端都有伺服器公開金鑰的副本。 |
參考資料 | 參照會為金鑰儲存區提供間接層級,因此只要維持相同的參照和金鑰別名,金鑰儲存區變更就不需要更新虛擬主機。這樣一來,您就能自行完成這些變更,減少對 Apigee 支援團隊的依賴。 |
自行簽署的憑證 |
憑證並非由可信任的 CA 簽署。核發者和主體相同,且簽署時使用的私密金鑰與內含的公開金鑰相符。 |
SNI |
伺服器名稱指示。允許從相同的 IP 位址和通訊埠提供多個 HTTPS 目標,而不需這些目標使用相同的憑證。 |
傳輸層安全標準 (TLS) 憑證 |
在 TLS 交易中識別實體的數位檔案。憑證或憑證可用於識別 TLS 伺服器和 TLS 用戶端,視 TLS 設定而定。 |
信任儲存區 |
包含 TLS 用戶端上用於驗證 TLS 伺服器憑證的信任憑證,該憑證會向用戶端顯示。這類憑證通常是自行簽署的憑證,或是未由可信任的 CA 簽署的憑證。 在北向連線上,用戶端應用程式的憑證會儲存在 Apigee Edge 的信任存放區中。只有在您已設定用戶端與 Apigee 之間的雙向 TLS 時,才需要執行這項操作。 在南向連線上,後端伺服器的憑證會儲存在 Apigee Edge 的信任儲存區中。如果您想在 Apigee Edge 與後端伺服器之間的單向或雙向 TLS 通訊中,驗證後端的憑證,就必須這麼做。 Apigee Edge 沒有個別的信任儲存區物件。因此,信任儲存區會建立為金鑰儲存區物件,但凡是使用信任儲存區的地方 (例如虛擬主機、目標端點、目標伺服器等),都會參照信任儲存區。 |
虛擬主機 |
虛擬主機代表用戶端應用程式的 Apigee API 端點。這項實體有助於在單一伺服器 (或伺服器集區) 上,託管多個網域名稱 (分別處理每個名稱)。這樣一來,伺服器就能共用記憶體和處理器週期等資源,不必讓所有服務使用相同的主機名稱。 虛擬主機可以提供 HTTP 或 HTTPS (已啟用 SSL) 流量。 您可以在單向或雙向 TLS 模式中設定啟用 SSL 的虛擬主機。設定如下:
|
單向傳輸層安全標準 (TLS)/安全資料傳輸層 (SSL)
下圖顯示 TLS 用戶端與 TLS 伺服器之間單向驗證的 TLS/SSL 交握:
在單向傳輸層安全標準 (TLS) 設定中,握手程序如下:
- 用戶端向伺服器發出工作階段要求。
- 伺服器會傳回包含公開金鑰的憑證。這項憑證來自伺服器的金鑰儲存區,其中也包含伺服器的私密金鑰。私密金鑰絕不會傳送給用戶端。
- 如果是已簽署的憑證,用戶端會使用包含伺服器憑證和公開金鑰的信任儲存區,驗證憑證鏈結是否由信任的憑證授權單位 (CA) 簽署。
- 用戶端和伺服器會交換更多訊息來驗證金鑰。
- 用戶端開始與伺服器進行 TLS 資料移轉。
下圖顯示使用用戶端選用信任儲存區的 TLS/SSL 交握:
如果 TLS 伺服器使用自行簽署的憑證,或未由信任的 CA 簽署的憑證,您可以在用戶端建立信任存放區。用戶端會使用信任的伺服器憑證和公開金鑰填入信任儲存區。用戶端收到憑證後,會根據信任儲存區中的憑證驗證收到的憑證。
在單向 TLS 中,Edge 可以是伺服器或用戶端,如下所示:
-
Edge 做為 TLS 伺服器
Edge 是代管 TLS 端點的伺服器,而 TLS 端點對應於部署至虛擬主機的 API Proxy。用戶端是嘗試存取 API Proxy 的應用程式。在這個情境中,Edge 具有包含憑證和私密金鑰的金鑰儲存區。
-
Edge 做為 TLS 用戶端
Edge 會做為存取後端服務的用戶端。在本例中,後端服務對應於代管 TLS 端點的伺服器。因此後端伺服器具有包含憑證和私密金鑰的 KeyStore。
雙向 TLS
下圖顯示用戶端與伺服器之間雙向 TLS 驗證的 TLS/SSL 交握:
在雙向 TLS 中,握手程序如下:
- 用戶端和伺服器都有自己的金鑰儲存區。用戶端金鑰儲存區包含憑證和私密金鑰,伺服器金鑰儲存區則包含憑證和私密金鑰。
- TLS 伺服器會向 TLS 用戶端出示憑證,以驗證自身。接著,用戶端會先驗證伺服器的身分,再將憑證傳送至伺服器。
- TLS 用戶端會向 TLS 伺服器出示憑證,向伺服器驗證自身。
下圖顯示使用選用信任儲存區的 TLS 握手:
在這個情境中,交握程序如下:
- 如果 TLS 伺服器使用自行簽署的憑證,或未由信任的 CA 簽署的憑證,您可以在用戶端建立信任存放區。用戶端的信任儲存區中存有伺服器憑證副本。在 TLS 握手期間,用戶端會比較信任儲存區中的憑證與伺服器傳送的憑證,以驗證伺服器的身分。
- 如果 TLS 用戶端使用自行簽署的憑證,或未由信任的 CA 簽署的憑證,您可以在伺服器上建立信任存放區。伺服器的信任存放區中會有用戶端憑證副本。在 TLS 握手期間,伺服器會比較信任儲存區中的憑證與用戶端傳送的憑證,藉此驗證用戶端的身分。
用戶端、伺服器或兩者皆可使用信任儲存區。
在雙向 TLS 中,Edge 可以是伺服器或用戶端,如下所示:
-
Edge 做為伺服器
Edge 是代管 TLS 端點的伺服器,其中 TLS 端點對應於 API Proxy。用戶端是嘗試存取 API Proxy 的應用程式。在這種情況下,Edge 具有包含憑證和私密金鑰的 KeyStore,且需要包含用戶端憑證和 CA 鏈結的 TrustStore。
-
Edge 做為用戶端
Edge 會做為存取後端服務的用戶端。在本例中,後端服務對應於代管 TLS 端點的伺服器。因此,後端伺服器會擁有包含憑證和私密金鑰的 KeyStore。
Edge 也必須定義金鑰儲存區,其中包含向後端服務驗證自身所需的憑證,以及 (選用) 信任儲存區,其中包含後端伺服器的憑證 (如果伺服器使用自行簽署的憑證,或不是由信任的 CA 簽署的憑證)。
請務必記住,無論您決定如何設定,Edge 都具有足夠的彈性,可支援雙向 TLS。
支援 SNI
在 Cloud 和 Private Cloud 安裝作業中,Edge 支援從 API Proxy 到 Edge (Edge 擔任 TLS 伺服器),以及從 Edge 到目標端點 (Edge 擔任 TLS 用戶端) 使用伺服器名稱指標 (SNI)。
SNI 是 TLS/SSL 的擴充功能,可讓多個 HTTPS 目標使用相同的 IP 位址和通訊埠,不必使用相同的憑證。
如要瞭解如何為內部部署安裝啟用 SNI,請參閱搭配 Edge 使用 SNI。
北向和南向
在 Apigee 中,「北向」是指用戶端應用程式用來叫用 API Proxy 的 API 端點。通常,Router 是 Apigee Edge 的進入點,負責處理傳入 Apigee Edge 的要求。因此在 Apigee 中,用於用戶端應用程式與 Apigee Edge (路由器) 之間通訊的端點稱為「北向」。
在 Apigee 中,「南向」是指 Apigee 用來與後端伺服器通訊的目標端點。因此在 Apigee 中,Apigee Edge (訊息處理器) 和後端伺服器之間通訊所用的端點稱為「南向」。訊息處理器是 Apigee Edge 的元件,可將 API 要求 Proxy 至後端目標伺服器。
下圖說明 Apigee Edge 的北向和南向連線: