Secure your app with minimum TLS (flexible environment)

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 versionIANA valueCipher suite
TLS v1.30x1301TLS_AES_128_GCM_SHA256
0x1302TLS_AES_256_GCM_SHA384
0x1303TLS_CHACHA20_POLY1305_SHA256
TLS v1.20xCCA9TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
0xCCA8TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
0xC02BTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
0xC02FTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
0xC02CTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
0xC030TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
0xC009TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
0xC013TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
0xC00ATLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
0xC014TLS_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

  1. In the Google Cloud console, go to the App EngineSettings page:

    Go to Settings

  2. In theApplication settings tab, clickEdit application settings.

  3. 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.

  4. 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_VERSION

To set a minimum TLS version while updating your app:

gcloud app update --ssl-policy=TLS_VERSION

ReplaceTLS_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

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.