Secure your app with minimum TLS (flexible environment) Stay organized with collections Save and categorize content based on your preferences.
To increase security, starting in March 2025, support for Transport Layer Security (TLS) version 1.1 and earlier is deprecated.Update your application settings in the App Engine flexible environment to use TLS version 1.2 and later, along with a corresponding secure set of cipher suites.
When you select the latest TLS version, App Engine automaticallyblocks insecure traffic, without requiring you toconfigure aglobal external Application Load Balancer to route requests to your application.
To upgrade your existing applications to useonly TLS version 1.2 and later, follow theinstructions in thisguide.
Note: If you update your application settings to enforce TLS version 1.2 and later,App Engine automatically rejects incoming requests that attempt to use older,less secure TLS versions 1.1 and earlier. Before March 2026, this rejectioncauses a400 Bad Request - The request was malformed error, after a successfulTLS handshake, meaning the connection is established, but the request itself isdenied. External SSL-checking sites might only verify a successful TLShandshake, and incorrectly imply that TLS version 1.1 and earlier are stillsupported. After March 2026, App Engine ensures stricter security compliance bypreventing the TLS handshake itself for connections using TLS version 1.1 and earlier.Supported TLS versions and cipher suites
The security of TLS connections depends on the negotiated cipher suite, acombination of cryptographic algorithms. These cipher suites are identified byIANA values, as detailed in the following table:
| TLS version | IANA value | Cipher suite |
|---|---|---|
| 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 |
If you need to use a different or a less restrictive cipher suite, we recommendthat you use a global external Application Load Balancer. For more information, seeSet up a classic Application Load Balancer with App Engine andSSL policies for SSL and TLS protocols in the Cloud Load Balancing documentation.
Update the TLS versions allowed for your app
You can update the TLS version using the Google Cloud console or thegcloud CLI. For tool-specific steps, click the tab for your preferredtool:
Console
In the Google Cloud console, go to the App EngineSettings page:
In theApplication settings tab, clickEdit application settings.
From theSSL Policy list, selectTLS 1.2+ (Modern ciphers).This selection only allows TLS version 1.2 and later, with modern ciphersuites. If you want to allow less secure TLS versions,such as 1.0 and later, selectTLS 1.0+ (Obsolete). However, werecommend that you update your applications to use the latestsupported TLS version.
ClickSave.
gcloud
When you create or update your application, use the--ssl-policy flag tospecify the minimum permitted TLS version.
To set a minimum TLS version while creating your app:
gcloud app create --ssl-policy=TLS_VERSIONTo set a minimum TLS version while updating your app:
gcloud app update --ssl-policy=TLS_VERSIONReplaceTLS_VERSION withTLS_VERSION_1_2. This only allows TLS version1.2 and later, with modern cipher suites. If you want to allow less secure TLS version,such as, 1.0 and later, replaceTLS_VERSION withTLS_VERSION_1_0. However, we recommend that you update yourapplications to use the latestsupported TLS version.
Disable custom TLS versions and ciphers
If you update your application settings to use TLS version 1.2 and later, App Engine automatically blocks all insecure traffic using TLS version 1.1 and earlier.
If you useCloud Load Balancing and serverless NEGSto route traffic to your App Engine application, you can disable a TLSversion or cipher by defining anSSL security policy. Specify the TLS versions and ciphers that HTTPS or SSLconnections can use.
What's next
To verify and manage SSL certificates, seeSecure custom domains with SSL.
To enable Cloud Load Balancing to manage incoming requests to your custom domain, seeMigrate App Engine custom domain to Cloud Load Balancing.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-12-15 UTC.