SSL/TLS 是網路上最廣為使用的密碼編譯通訊協定。從技術上來說,TLS 是 SSL 的後繼技術,但這兩個詞有時會互通使用,就像這份文件一樣。
傳輸層安全標準 (TLS) 可在資訊透過網路傳送時加密,確保用戶端與伺服器或負載平衡器之間的隱私權。使用 SSL 的應用程式負載平衡器或 Proxy 網路負載平衡器,至少需要一個私密金鑰和 SSL 憑證。
憑證設定方法
如果是使用目標 HTTPS Proxy 的應用程式負載平衡器,負載平衡器的目標 Proxy 必須參照 1 到 15 個Compute Engine SSL 憑證。每個 Compute Engine SSL 憑證資源都包含私密金鑰、對應的憑證,以及 (選用) CA 憑證。
負載平衡器支援
下表列出各負載平衡器支援的憑證設定方法。
負載平衡器 | 憑證設定方式:目標 Proxy 參照... | |||
---|---|---|---|---|
Compute Engine SSL 憑證 | Certificate Manager 憑證對應關係 | 直接使用 Certificate Manager 憑證 | ||
應用程式負載平衡器 (目標 HTTPS Proxy) | ||||
區域性外部應用程式負載平衡器 | 支援區域憑證 自行管理 Google 代管 |
自行管理 Google 管理 |
||
區域性內部應用程式負載平衡器 | 支援區域憑證 自行管理 Google 代管 |
自行管理 Google 管理 |
憑證類型
您可以為負載平衡器建立自行管理的 SSL 憑證。
自行管理的安全資料傳輸層 (SSL) 憑證
自行管理的 SSL 憑證是指您自行取得、佈建及更新的憑證。自行管理的憑證可以是下列任何一種公開金鑰憑證類型:
- 網域驗證 (DV)
- 機構驗證 (OV)
- 延伸驗證 (EV) 憑證
您可以使用 Compute Engine SSL 憑證資源建立自行管理的 SSL 憑證。詳情請參閱「使用自行管理的 SSL 憑證」。
支援的金鑰類型
區域性自行管理的 Compute Engine SSL 憑證支援下列金鑰類型:
- RSA-2048
- RSA-3072
- RSA-4096
- ECDSA P-256
- ECDSA P-384
多個 SSL 憑證
應用程式負載平衡器的目標 Proxy 最多可參照 15 個 Compute Engine SSL 憑證。第一個參照的 Compute Engine SSL 憑證資源是目標 Proxy 的預設 (主要) 憑證。
詳情請參閱負載平衡說明文件中的「目標 Proxy」和「SSL 憑證」。
憑證選取程序
如果負載平衡器的目標 Proxy 參照多個 Compute Engine SSL 憑證,系統會依下列程序選取憑證。
用戶端連線至負載平衡器後,用戶端和負載平衡器會協商 TLS 工作階段。在 TLS 工作階段交涉期間,用戶端會將支援的 TLS 密碼清單傳送給負載平衡器 (位於 ClientHello
中)。負載平衡器會選取公開金鑰演算法與用戶端相容的憑證。用戶端也可以在交涉過程中,將伺服器名稱指示 (SNI) 主機名稱傳送至負載平衡器。有時,負載平衡器會使用 SNI 主機名稱資料,選取要傳送給用戶端的憑證。
如果負載平衡器的目標 Proxy 只參照一個憑證,系統就會使用該憑證,而用戶端傳送的 SNI 主機名稱值則不相關。
如果負載平衡器的目標 Proxy 參照兩個以上的憑證,負載平衡器會使用下列程序選取單一憑證:
如果用戶端未在
ClientHello
中傳送任何 SNI 主機名稱,負載平衡器會使用憑證清單中的第一個憑證。如果用戶端傳送的 SNI 主機名稱與任何憑證的通用名稱 (CN) 不符,且與任何憑證的主體別名 (SAN) 不符,負載平衡器就會使用憑證清單中的第一個憑證。
在所有其他情況下,負載平衡器會使用下列比對程序選取憑證:
系統會根據一般名稱 (CN) 和主體別名 (SAN) 憑證屬性,比對最長後置字串,並優先選取 ECDSA 憑證,而非 RSA 憑證。
為說明比對方法,請考慮參照下列兩項憑證的目標 Proxy:
憑證 A
- CN:
cats.pets.example.com
- SAN:
cats.pets.example.com
、*.pets.example.com
、*.example.com
- CN:
憑證 B
- CN:
dogs.pets.example.com
- SAN:
dogs.pets.example.com
、*.pets.example.com
、*.example.com
- CN:
現在請考慮下列情境:
- 如果用戶端傳送的 SNI 主機名稱為
cats.pets.example.com
,負載平衡器會使用憑證 A。 - 如果用戶端傳送的 SNI 主機名稱為
ferrets.pets.example.com
,由於沒有完全相符的憑證,負載平衡器會選取其中一個憑證 (憑證 A 或憑證 B),因為兩者都包含*.pets.example.com
在 SAN 清單中。在這種情況下,您無法控制選取的憑證。
- 如果用戶端傳送的 SNI 主機名稱為
選取憑證後,負載平衡器會僅在所選憑證使用的公開金鑰演算法與用戶端在
ClientHello
中傳送的密碼相容時,將該憑證傳送給用戶端。如果用戶端不支援包含負載平衡器所選憑證公開金鑰演算法 (ECDSA 或 RSA) 的密碼編譯套件,TLS 交涉就會失敗。