Skip to content

Remove TLSv1.1 from default protocols#121731

Merged
tvernum merged 9 commits intoelastic:mainfrom
tvernum:security/disable-tls11
Feb 10, 2025
Merged

Remove TLSv1.1 from default protocols#121731
tvernum merged 9 commits intoelastic:mainfrom
tvernum:security/disable-tls11

Conversation

@tvernum
Copy link
Copy Markdown
Contributor

@tvernum tvernum commented Feb 5, 2025

This commit removes "TLSv1.1" from the list of default protocols in Elasticsearch (starting with ES9.0)

TLSv1.1 has been deprecated by the IETF since March 2021

This affects a variety of TLS contexts, include

  • The HTTP Server (Rest API)
  • Transport protocol (including CCS and CCR)
  • Outgoing connections for features that have configurable SSL settings. This includes
    • reindex
    • watcher
    • security realms (SAML, OIDC, LDAP, etc)
    • monitoring exporters
    • inference services

In practice, however, TLSv1.1 has been disabled in most Elasticsearch deployments since around 7.12 because most JDK releases have disabled TLSv1.1 (by default) starting in April 2021

That is, if you run a default installation of Elasticsearch (for any currently supported version of ES) that uses the bundled JVM then TLSv1.1 is already disabled.
And, since ES9+ requires JDK21+, all supported JDKs ship with TLSv1.1 disabled by default.

In addition, incoming HTTP connections to Elastic Cloud deployments have required TLSv1.2 or higher since April 2020

This change simply makes it clear that Elasticsearch does not attempt to enable TLSv1.1 and administrators who wish to use that protocol will need to explicitly enable it in both the JVM and in Elasticsearch.

Resolves: #108057

This commit removes "TLSv1.1" from the list of default protocols in
Elasticsearch (starting with ES9.0)

TLSv1.1 has been deprecated by the IETF since March 2021

This affects a variety of TLS contexts, include
 - The HTTP Server (Rest API)
 - Transport protocol (including CCS and CCR)
 - Outgoing connections for features that have configurable SSL
   settings. This includes
    - reindex
    - watcher
    - security realms (SAML, OIDC, LDAP, etc)
    - monitoring exporters
    - inference services

In practice, however, TLSv1.1 has been disabled in most Elasticsearch
deployments since around 7.12 because most JDK releases have disabled
TLSv1.1 (by default) starting in April 2021

That is, if you run a default installation of Elasticsearch (for any
currently supported version of ES) that uses the bundled JVM then
TLSv1.1 is already disabled.
And, since ES9+ requires JDK21+, all supported JDKs ship with TLSv1.1
disabled by default.

In addition, incoming HTTP connections to Elastic Cloud deployments
have required TLSv1.2 or higher since April 2020

This change simply makes it clear that Elasticsearch does not
attempt to enable TLSv1.1 and administrators who wish to use that
protocol will need to explicitly enable it in both the JVM and in
Elasticsearch.

Resolves: elastic#108057
@tvernum tvernum requested a review from jakelandis February 5, 2025 00:46
@elasticsearchmachine elasticsearchmachine added the Team:Security Meta label for security team label Feb 5, 2025
@elasticsearchmachine
Copy link
Copy Markdown
Collaborator

Pinging @elastic/es-security (Team:Security)

@elasticsearchmachine
Copy link
Copy Markdown
Collaborator

Hi @tvernum, I've created a changelog YAML for you. Note that since this PR is labelled >breaking, you need to update the changelog YAML to fill out the extended information sections.

@tvernum
Copy link
Copy Markdown
Contributor Author

tvernum commented Feb 5, 2025

I haven't included any docs change here due to the docs freeze. I'll open a draft PR with the proposed changes so that we can be ready to port it to the new docs system.

tvernum added a commit to tvernum/elasticsearch that referenced this pull request Feb 5, 2025
Copy link
Copy Markdown
Contributor

@jakelandis jakelandis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tvernum tvernum added the auto-backport Automatically create backport pull requests when merged label Feb 10, 2025
@elasticsearchmachine
Copy link
Copy Markdown
Collaborator

Hi @tvernum, I've updated the changelog YAML for you. Note that since this PR is labelled >breaking, you need to update the changelog YAML to fill out the extended information sections.

@tvernum tvernum enabled auto-merge (squash) February 10, 2025 06:32
@elasticsearchmachine
Copy link
Copy Markdown
Collaborator

Hi @tvernum, I've updated the changelog YAML for you. Note that since this PR is labelled >breaking, you need to update the changelog YAML to fill out the extended information sections.

@elasticsearchmachine
Copy link
Copy Markdown
Collaborator

💚 Backport successful

Status Branch Result
9.0

tvernum added a commit to tvernum/elasticsearch that referenced this pull request Feb 10, 2025
This commit removes "TLSv1.1" from the list of default protocols in
Elasticsearch (starting with ES9.0)

TLSv1.1 has been deprecated by the IETF since March 2021

This affects a variety of TLS contexts, include
 - The HTTP Server (Rest API)
 - Transport protocol (including CCS and CCR)
 - Outgoing connections for features that have configurable SSL
   settings. This includes
    - reindex
    - watcher
    - security realms (SAML, OIDC, LDAP, etc)
    - monitoring exporters
    - inference services

In practice, however, TLSv1.1 has been disabled in most Elasticsearch
deployments since around 7.12 because most JDK releases have disabled
TLSv1.1 (by default) starting in April 2021

That is, if you run a default installation of Elasticsearch (for any
currently supported version of ES) that uses the bundled JVM then
TLSv1.1 is already disabled.
And, since ES9+ requires JDK21+, all supported JDKs ship with TLSv1.1
disabled by default.

In addition, incoming HTTP connections to Elastic Cloud deployments
have required TLSv1.2 or higher since April 2020

This change simply makes it clear that Elasticsearch does not
attempt to enable TLSv1.1 and administrators who wish to use that
protocol will need to explicitly enable it in both the JVM and in
Elasticsearch.

Resolves: elastic#108057
elasticsearchmachine pushed a commit that referenced this pull request Feb 10, 2025
This commit removes "TLSv1.1" from the list of default protocols in
Elasticsearch (starting with ES9.0)

TLSv1.1 has been deprecated by the IETF since March 2021

This affects a variety of TLS contexts, include
 - The HTTP Server (Rest API)
 - Transport protocol (including CCS and CCR)
 - Outgoing connections for features that have configurable SSL
   settings. This includes
    - reindex
    - watcher
    - security realms (SAML, OIDC, LDAP, etc)
    - monitoring exporters
    - inference services

In practice, however, TLSv1.1 has been disabled in most Elasticsearch
deployments since around 7.12 because most JDK releases have disabled
TLSv1.1 (by default) starting in April 2021

That is, if you run a default installation of Elasticsearch (for any
currently supported version of ES) that uses the bundled JVM then
TLSv1.1 is already disabled.
And, since ES9+ requires JDK21+, all supported JDKs ship with TLSv1.1
disabled by default.

In addition, incoming HTTP connections to Elastic Cloud deployments
have required TLSv1.2 or higher since April 2020

This change simply makes it clear that Elasticsearch does not
attempt to enable TLSv1.1 and administrators who wish to use that
protocol will need to explicitly enable it in both the JVM and in
Elasticsearch.

Resolves: #108057
@leemthompo
Copy link
Copy Markdown
Member

@tvernum is this PR relevant to the serverless changelog? [FYI this question is based on 9.0 breaking changes]

@tvernum
Copy link
Copy Markdown
Contributor Author

tvernum commented Apr 16, 2025

Thanks for the reminder, @leemthompo

It is not relevant to Serverless, but I had opened #121732 to draft the docs changes, but never got it converted to the new docs system.

tvernum added a commit to tvernum/elasticsearch that referenced this pull request Apr 16, 2025
In ES9 and later, we do not enable TLSv1.1 by default, even if the JDK
supports it.
This updates the docs accordingly.

Relates: elastic#121731
tvernum added a commit that referenced this pull request Apr 17, 2025
In ES9 and later, we do not enable TLSv1.1 by default,
even if the JDK supports it.

This updates the docs accordingly.

Relates: #121731
tvernum added a commit to tvernum/elasticsearch that referenced this pull request Apr 17, 2025
In ES9 and later, we do not enable TLSv1.1 by default,
even if the JDK supports it.

This updates the docs accordingly.

Relates: elastic#121731
elasticsearchmachine pushed a commit that referenced this pull request Apr 17, 2025
In ES9 and later, we do not enable TLSv1.1 by default,
even if the JDK supports it.

This updates the docs accordingly.

Relates: #121731
leemthompo added a commit to elastic/docs-content that referenced this pull request Apr 22, 2025
Elasticsearch 9.0 and later require JDK21
This changes the docs regarding TLS versions to reflect the behaviour on
modern JDKs.

Relates: 
- elastic/elasticsearch#121731 
- elastic/elasticsearch#121732

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-backport Automatically create backport pull requests when merged >breaking :Security/TLS SSL/TLS, Certificates Team:Security Meta label for security team v9.0.0 v9.1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Disable TLSv1.1 by default

4 participants