為提升安全性,App Engine 會自動為應用程式啟用 TLS 1.2 以上版本,並支援相應的加密套件,且可能會永久封鎖使用 TLS 1.1 以下版本的不安全流量。如果是 appspot.com 網域,這類封鎖會在連線層級發生。如果是自訂網域,連線可能會成功,但要求會遭到封鎖。
如果您的專案永久無法使用 TLS 1.1 以下版本,且需要更多時間改用 TLS 1.2 以上版本,請與支援團隊聯絡。
對於新應用程式,App Engine 預設只允許使用 TLS 1.2 以上版本和支援的加密套件,進行安全流量傳輸。如果應用程式只需要 TLS 1.2 以上版本,且使用預設支援的加密套件,則不需要設定全域外部應用程式負載平衡器來轉送要求。不過,如果您需要支援不同的加密套件組合,或要求針對自訂網域在連線層級 (交握) 拒絕不安全的 TLS 版本,請設定全域外部應用程式負載平衡器。
支援的 TLS 版本和加密套件
傳輸層安全標準 (TLS) 連線的安全性取決於協商的加密套件,也就是密碼編譯演算法的組合。這些密碼套件是由 IANA 值所識別,詳情請參閱下表:
| TLS 版本 | IANA 值 | 加密套件 |
|---|---|---|
| TLS v1.3 | 0x1301 | TLS_AES_128_GCM_SHA256 |
| 0x1302 | TLS_AES_256_GCM_SHA384 | |
| 0x1303 | TLS_CHACHA20_POLY1305_SHA256 | |
| TLS v1.2 | 0xCCA9 | TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 |
| 0xCCA8 | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 | |
| 0xC02B | TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 | |
| 0xC02F | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | |
| 0xC02C | TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 | |
| 0xC030 | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | |
| 0xC009 | TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA | |
| 0xC013 | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | |
| 0xC00A | TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA | |
| 0xC014 | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |
如需使用其他或限制較少的加密套件,建議您使用全域外部應用程式負載平衡器。詳情請參閱 Cloud Load Balancing 說明文件中的「設定後端為 App Engine 的傳統版應用程式負載平衡器」和「SSL 和 TLS 通訊協定的 SSL 政策」。
更新應用程式允許的 TLS 版本
App Engine 可能會永久封鎖使用 TLS 1.1 和舊版的不安全流量。如果專案已永久封鎖舊版 TLS,您就無法使用下列設定更新為舊版 TLS。如果專案需要較舊的 TLS 版本,請與支援團隊聯絡。
建立或更新應用程式時,請使用 --ssl-policy 旗標指定允許的最低 TLS 版本。
如要在建立應用程式時設定最低 TLS 版本,請按照下列步驟操作:
gcloud app create --ssl-policy=TLS_VERSION
如要在更新應用程式時設定最低 TLS 版本,請按照下列步驟操作:
gcloud app update --ssl-policy=TLS_VERSION
將 TLS_VERSION 替換為 TLS_VERSION_1_2。這項設定只允許使用 TLS 1.2 以上版本,以及新式加密套件。
停用自訂 TLS 版本和密碼
如果您使用 Cloud Load Balancing 和無伺服器 NEG 將流量轉送至 App Engine 應用程式,可以在負載平衡器上定義 SSL 安全性政策,進一步限制 TLS 版本或密碼。
後續步驟
如要驗證及管理 SSL 憑證,請參閱「透過安全資料傳輸層 (SSL) 保護自訂網域」。
如要讓 Cloud Load Balancing 管理自訂網域的連入要求,請參閱「將 App Engine 自訂網域遷移至 Cloud Load Balancing」。