透過最低 TLS 版本保護應用程式 (靈活環境)

為提升安全性,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 版本或密碼。

後續步驟