Skip to content

Commit 03690d1

Browse files
authored
Remove TLS 1.0 as a default SSL protocol (#37512)
The default value for ssl.supported_protocols no longer includes TLSv1 as this is an old protocol with known security issues. Administrators can enable TLSv1.0 support by configuring the appropriate `ssl.supported_protocols` setting, for example: xpack.security.http.ssl.supported_protocols: ["TLSv1.2","TLSv1.1","TLSv1"] Relates: #36021
1 parent 6a13a25 commit 03690d1

File tree

6 files changed

+24
-8
lines changed

6 files changed

+24
-8
lines changed

docs/reference/migration/migrate_7_0/settings.asciidoc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,19 @@ fallback to a default configuration when using TLS. Each component (realm, trans
132132
http client, etc) must now be configured with their own settings for TLS if it is being
133133
used.
134134

135+
[float]
136+
[[tls-v1-removed]]
137+
==== TLS v1.0 disabled
138+
139+
TLS version 1.0 is now disabled by default as it suffers from
140+
https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule_-_Only_Support_Strong_Protocols[known security issues].
141+
The default protocols are now TLSv1.2 and TLSv1.1.
142+
You can enable TLS v1.0 by configuring the relevant `ssl.supported_protocols` setting to include `"TLSv1"`, for example:
143+
[source,yaml]
144+
--------------------------------------------------
145+
xpack.security.http.ssl.supported_protocols: [ "TLSv1.2", "TLSv1.1", "TLSv1" ]
146+
--------------------------------------------------
147+
135148
[float]
136149
[[watcher-notifications-account-settings]]
137150
==== Watcher notifications account settings

docs/reference/settings/security-settings.asciidoc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ and `full`. Defaults to `full`.
480480
See <<ssl-tls-settings,`ssl.verification_mode`>> for an explanation of these values.
481481

482482
`ssl.supported_protocols`::
483-
Supported protocols for TLS/SSL (with versions). Defaults to `TLSv1.2,TLSv1.1,TLSv1`.
483+
Supported protocols for TLS/SSL (with versions). Defaults to `TLSv1.2,TLSv1.1`.
484484

485485
`ssl.cipher_suites`:: Specifies the cipher suites that should be supported when
486486
communicating with the LDAP server.
@@ -724,7 +724,7 @@ and `full`. Defaults to `full`.
724724
See <<ssl-tls-settings,`ssl.verification_mode`>> for an explanation of these values.
725725

726726
`ssl.supported_protocols`::
727-
Supported protocols for TLS/SSL (with versions). Defaults to `TLSv1.2, TLSv1.1, TLSv1`.
727+
Supported protocols for TLS/SSL (with versions). Defaults to `TLSv1.2, TLSv1.1`.
728728

729729
`ssl.cipher_suites`:: Specifies the cipher suites that should be supported when
730730
communicating with the Active Directory server.
@@ -1206,8 +1206,7 @@ settings. For more information, see
12061206

12071207
`ssl.supported_protocols`::
12081208
Supported protocols with versions. Valid protocols: `SSLv2Hello`,
1209-
`SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. Defaults to `TLSv1.2`, `TLSv1.1`,
1210-
`TLSv1`.
1209+
`SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. Defaults to `TLSv1.2`, `TLSv1.1`.
12111210
+
12121211
--
12131212
NOTE: If `xpack.security.fips_mode.enabled` is `true`, you cannot use `SSLv2Hello`

docs/reference/settings/ssl-settings.asciidoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ endif::server[]
1111

1212
+{ssl-prefix}.ssl.supported_protocols+::
1313
Supported protocols with versions. Valid protocols: `SSLv2Hello`,
14-
`SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. Defaults to `TLSv1.2`, `TLSv1.1`,
15-
`TLSv1`.
14+
`SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. Defaults to `TLSv1.2`, `TLSv1.1`.
15+
1616

1717
ifdef::server[]
1818
+{ssl-prefix}.ssl.client_authentication+::

libs/ssl-config/src/main/java/org/elasticsearch/common/ssl/SslConfigurationLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
*/
6969
public abstract class SslConfigurationLoader {
7070

71-
static final List<String> DEFAULT_PROTOCOLS = Arrays.asList("TLSv1.2", "TLSv1.1", "TLSv1");
71+
static final List<String> DEFAULT_PROTOCOLS = Arrays.asList("TLSv1.2", "TLSv1.1");
7272
static final List<String> DEFAULT_CIPHERS = loadDefaultCiphers();
7373
private static final char[] EMPTY_PASSWORD = new char[0];
7474

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackSettings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ private XPackSettings() {
154154
}
155155
}, Setting.Property.NodeScope);
156156

157-
public static final List<String> DEFAULT_SUPPORTED_PROTOCOLS = Arrays.asList("TLSv1.2", "TLSv1.1", "TLSv1");
157+
public static final List<String> DEFAULT_SUPPORTED_PROTOCOLS = Arrays.asList("TLSv1.2", "TLSv1.1");
158158
public static final SSLClientAuth CLIENT_AUTH_DEFAULT = SSLClientAuth.REQUIRED;
159159
public static final SSLClientAuth HTTP_CLIENT_AUTH_DEFAULT = SSLClientAuth.NONE;
160160
public static final VerificationMode VERIFICATION_MODE_DEFAULT = VerificationMode.FULL;

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ssl/SSLConfigurationTests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.elasticsearch.env.Environment;
1212
import org.elasticsearch.env.TestEnvironment;
1313
import org.elasticsearch.test.ESTestCase;
14+
import org.elasticsearch.xpack.core.XPackSettings;
1415
import org.elasticsearch.xpack.core.ssl.TrustConfig.CombiningTrustConfig;
1516

1617
import javax.net.ssl.KeyManager;
@@ -22,6 +23,7 @@
2223

2324
import static org.hamcrest.Matchers.equalTo;
2425
import static org.hamcrest.Matchers.everyItem;
26+
import static org.hamcrest.Matchers.hasItem;
2527
import static org.hamcrest.Matchers.instanceOf;
2628
import static org.hamcrest.Matchers.is;
2729
import static org.hamcrest.Matchers.isIn;
@@ -35,6 +37,8 @@ public void testThatSSLConfigurationHasCorrectDefaults() {
3537
assertThat(globalConfig.keyConfig(), sameInstance(KeyConfig.NONE));
3638
assertThat(globalConfig.trustConfig(), is(not((globalConfig.keyConfig()))));
3739
assertThat(globalConfig.trustConfig(), instanceOf(DefaultJDKTrustConfig.class));
40+
assertThat(globalConfig.supportedProtocols(), equalTo(XPackSettings.DEFAULT_SUPPORTED_PROTOCOLS));
41+
assertThat(globalConfig.supportedProtocols(), not(hasItem("TLSv1")));
3842
}
3943

4044
public void testThatOnlyKeystoreInSettingsSetsTruststoreSettings() {

0 commit comments

Comments
 (0)