This is an automated email from the ASF dual-hosted git repository.

cgivre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git


The following commit(s) were added to refs/heads/master by this push:
     new de30b80  DRILL-8177: Bump default TLS version to 1.3 (#2505)
de30b80 is described below

commit de30b809dc0297a171b9ea97ae6159cb00568cbb
Author: Rymar Maksym <[email protected]>
AuthorDate: Mon Mar 28 21:53:38 2022 +0300

    DRILL-8177: Bump default TLS version to 1.3 (#2505)
    
    * Bump default TLS version to 1.3. Fix web server log
    
    * Change TLS version in tests. Change value of TLS constants
---
 distribution/src/main/resources/drill-override-example.conf       | 6 +++---
 .../src/main/java/org/apache/drill/exec/ExecConstants.java        | 2 +-
 .../drill/exec/server/rest/ssl/SslContextFactoryConfigurator.java | 2 +-
 .../src/main/java/org/apache/drill/exec/ssl/SSLConfig.java        | 2 +-
 exec/java-exec/src/main/resources/drill-module.conf               | 2 +-
 .../org/apache/drill/exec/rpc/user/security/TestUserBitSSL.java   | 8 ++++----
 .../apache/drill/exec/rpc/user/security/TestUserBitSSLServer.java | 2 +-
 .../exec/server/rest/ssl/SslContextFactoryConfiguratorTest.java   | 2 +-
 8 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/distribution/src/main/resources/drill-override-example.conf 
b/distribution/src/main/resources/drill-override-example.conf
index 034307b..35fcb1c 100644
--- a/distribution/src/main/resources/drill-override-example.conf
+++ b/distribution/src/main/resources/drill-override-example.conf
@@ -335,10 +335,10 @@ drill.exec: {
     keyPassword: "key_passwd",
     #Optional handshakeTimeout in milliseconds. Default is 10000 ms (10 
seconds)
     handshakeTimeout: 10000,
-    #protocol is optional. Drill will default to TLSv1.2. Valid values depend 
on protocol versions
+    #protocol is optional. Drill will default to TLSv1.3. Valid values depend 
on protocol versions
     # enabled for tje underlying securrity provider. For JSSE these are : SSL, 
SSLV2, SSLV3,
-    # TLS, TLSV1, TLSv1.1, TLSv1.2
-    protocol: "TLSv1.2",
+    # TLS, TLSV1, TLSv1.1, TLSv1.2, TLSv1.3
+    protocol: "TLSv1.3",
     #ssl provider. May be "JDK" or "OPENSSL". Default is "JDK"
     provider: "JDK"
   }
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java 
b/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
index 1ca51bc..3351869 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
@@ -197,7 +197,7 @@ public final class ExecConstants {
       new OptionDescription("Linearly reduces partition sender buffer row 
count after this number of receivers. Default is 0 (disabled). (Since Drill 
1.18)"));
 
   public static final String SSL_PROVIDER = "drill.exec.ssl.provider"; // 
valid values are "JDK", "OPENSSL" // default JDK
-  public static final String SSL_PROTOCOL = "drill.exec.ssl.protocol"; // 
valid values are SSL, SSLV2, SSLV3, TLS, TLSV1, TLSv1.1, TLSv1.2(default)
+  public static final String SSL_PROTOCOL = "drill.exec.ssl.protocol"; // 
valid values are SSL, SSLV2, SSLV3, TLS, TLSV1, TLSv1.1, TLSv1.2, 
TLSv1.3(default)
   public static final String SSL_KEYSTORE_TYPE = "drill.exec.ssl.keyStoreType";
   public static final String SSL_KEYSTORE_PATH = 
"drill.exec.ssl.keyStorePath";     // path to keystore. default : 
$JRE_HOME/lib/security/keystore.jks
   public static final String SSL_KEYSTORE_PASSWORD = 
"drill.exec.ssl.keyStorePassword"; // default: changeit
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfigurator.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfigurator.java
index 7da5465..3a74549 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfigurator.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfigurator.java
@@ -94,7 +94,6 @@ public class SslContextFactoryConfigurator {
       }
     }
     sslFactory.setIncludeProtocols(sslConf.getProtocol());
-    logger.info("Web server configured to use TLS protocol '{}'", 
sslConf.getProtocol());
     if 
(config.hasPath(ExecConstants.HTTP_JETTY_SSL_CONTEXT_FACTORY_OPTIONS_PREFIX)) {
       
setStringIfPresent(ExecConstants.HTTP_JETTY_SERVER_SSL_CONTEXT_FACTORY_CERT_ALIAS,
 sslFactory::setCertAlias);
       
setStringIfPresent(ExecConstants.HTTP_JETTY_SERVER_SSL_CONTEXT_FACTORY_CRL_PATH,
 sslFactory::setCrlPath);
@@ -126,6 +125,7 @@ public class SslContextFactoryConfigurator {
       
setBooleanIfPresent(ExecConstants.HTTP_JETTY_SERVER_SSL_CONTEXT_FACTORY_VALIDATE_PEER_CERTS,
 sslFactory::setValidatePeerCerts);
       
setBooleanIfPresent(ExecConstants.HTTP_JETTY_SERVER_SSL_CONTEXT_FACTORY_WANT_CLIENT_AUTH,
 sslFactory::setWantClientAuth);
     }
+    logger.info("Web server configured to use TLS protocol '{}'", 
String.join(", ", sslFactory.getIncludeProtocols()));
   }
 
   private void setStringArrayIfPresent(String optKey, Consumer<String[]> 
optSet) {
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfig.java 
b/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfig.java
index e82bbdf..0564e10 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfig.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfig.java
@@ -41,7 +41,7 @@ public abstract class SSLConfig {
   private static final Logger logger = 
LoggerFactory.getLogger(SSLConfig.class);
 
   public static final String DEFAULT_SSL_PROVIDER = "JDK"; // JDK or OPENSSL
-  public static final String DEFAULT_SSL_PROTOCOL = "TLSv1.2";
+  public static final String DEFAULT_SSL_PROTOCOL = "TLSv1.3";
   public static final int DEFAULT_SSL_HANDSHAKE_TIMEOUT_MS = 10 * 1000; // 10 
seconds
 
   // Either the Netty SSL context or the JDK SSL context will be initialized
diff --git a/exec/java-exec/src/main/resources/drill-module.conf 
b/exec/java-exec/src/main/resources/drill-module.conf
index fa67fd1..56b1515 100644
--- a/exec/java-exec/src/main/resources/drill-module.conf
+++ b/exec/java-exec/src/main/resources/drill-module.conf
@@ -210,7 +210,7 @@ drill.exec: {
     trustStorePassword =  ${?javax.net.ssl.trustStorePassword}
     # default key password to keystore password
     keyPassword = ${?javax.net.ssl.keyStorePassword},
-    protocol: "TLSv1.2",
+    protocol: "TLSv1.3",
     # if true, then Drill will read SSL parameters from the
     # Hadoop configuration files.
     useHadoopConfig : true,
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestUserBitSSL.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestUserBitSSL.java
index e99bc1e..3e82419 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestUserBitSSL.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestUserBitSSL.java
@@ -76,7 +76,7 @@ public class TestUserBitSSL extends BaseTestQuery {
         .withValue(ExecConstants.SSL_TRUSTSTORE_PASSWORD,
             ConfigValueFactory.fromAnyRef("drill123"))
         .withValue(ExecConstants.SSL_PROTOCOL,
-            ConfigValueFactory.fromAnyRef("TLSv1.2")));
+            ConfigValueFactory.fromAnyRef("TLSv1.3")));
 
     initProps = new Properties();
     initProps.setProperty(DrillProperties.ENABLE_TLS, "true");
@@ -252,7 +252,7 @@ public class TestUserBitSSL extends BaseTestQuery {
           .withValue(ExecConstants.SSL_KEYSTORE_TYPE, 
ConfigValueFactory.fromAnyRef("JKS"))
           .withValue(ExecConstants.SSL_KEYSTORE_PATH, 
ConfigValueFactory.fromAnyRef(keyStorePath))
           .withValue(ExecConstants.SSL_KEYSTORE_PASSWORD, 
ConfigValueFactory.fromAnyRef("test_password"))
-          .withValue(ExecConstants.SSL_PROTOCOL, 
ConfigValueFactory.fromAnyRef("TLSv1.2")));
+          .withValue(ExecConstants.SSL_PROTOCOL, 
ConfigValueFactory.fromAnyRef("TLSv1.3")));
 
       updateTestCluster(1, sslConfig, connectionProps);
 
@@ -297,7 +297,7 @@ public class TestUserBitSSL extends BaseTestQuery {
           .withValue(ExecConstants.SSL_KEYSTORE_TYPE, 
ConfigValueFactory.fromAnyRef("JKS"))
           .withValue(ExecConstants.SSL_KEYSTORE_PATH, 
ConfigValueFactory.fromAnyRef(unknownKsPath))
           .withValue(ExecConstants.SSL_KEYSTORE_PASSWORD, 
ConfigValueFactory.fromAnyRef("drill123"))
-          .withValue(ExecConstants.SSL_PROTOCOL, 
ConfigValueFactory.fromAnyRef("TLSv1.2")));
+          .withValue(ExecConstants.SSL_PROTOCOL, 
ConfigValueFactory.fromAnyRef("TLSv1.3")));
 
       updateTestCluster(1, sslConfig, connectionProps);
 
@@ -325,7 +325,7 @@ public class TestUserBitSSL extends BaseTestQuery {
           .withValue(ExecConstants.SSL_KEYSTORE_TYPE, 
ConfigValueFactory.fromAnyRef("JKS"))
           .withValue(ExecConstants.SSL_KEYSTORE_PATH, 
ConfigValueFactory.fromAnyRef(unknownKsPath))
           .withValue(ExecConstants.SSL_KEYSTORE_PASSWORD, 
ConfigValueFactory.fromAnyRef("drill123"))
-          .withValue(ExecConstants.SSL_PROTOCOL, 
ConfigValueFactory.fromAnyRef("TLSv1.2")));
+          .withValue(ExecConstants.SSL_PROTOCOL, 
ConfigValueFactory.fromAnyRef("TLSv1.3")));
 
       updateTestCluster(1, sslConfig, connectionProps);
 
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestUserBitSSLServer.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestUserBitSSLServer.java
index 3d71146..5cadf89 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestUserBitSSLServer.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestUserBitSSLServer.java
@@ -52,7 +52,7 @@ public class TestUserBitSSLServer extends BaseTestQuery {
         .withValue(ExecConstants.SSL_KEYSTORE_PATH, 
ConfigValueFactory.fromAnyRef(ksPath))
         .withValue(ExecConstants.SSL_KEYSTORE_PASSWORD, 
ConfigValueFactory.fromAnyRef("drill123"))
         .withValue(ExecConstants.SSL_KEY_PASSWORD, 
ConfigValueFactory.fromAnyRef("drill123"))
-        .withValue(ExecConstants.SSL_PROTOCOL, 
ConfigValueFactory.fromAnyRef("TLSv1.2")));
+        .withValue(ExecConstants.SSL_PROTOCOL, 
ConfigValueFactory.fromAnyRef("TLSv1.3")));
     initProps = new Properties();
     initProps.setProperty(DrillProperties.ENABLE_TLS, "true");
     initProps.setProperty(DrillProperties.TRUSTSTORE_PATH, tsPath);
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfiguratorTest.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfiguratorTest.java
index 6a184fb..f7dbdd7 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfiguratorTest.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/server/rest/ssl/SslContextFactoryConfiguratorTest.java
@@ -42,7 +42,7 @@ public class SslContextFactoryConfiguratorTest extends 
ClusterTest {
   public static void setUpClass() throws Exception {
     ClusterFixtureBuilder fixtureBuilder = 
ClusterFixture.builder(dirTestWatcher)
         // imitate proper ssl config for embedded web
-        .configProperty(ExecConstants.SSL_PROTOCOL, "TLSv1.2")
+        .configProperty(ExecConstants.SSL_PROTOCOL, "TLSv1.3")
         .configProperty(ExecConstants.HTTP_ENABLE_SSL, true)
         .configProperty(ExecConstants.HTTP_TRUSTSTORE_PATH, 
"/tmp/ssl/cacerts.jks")
         .configProperty(ExecConstants.HTTP_TRUSTSTORE_PASSWORD, "passphrase")

Reply via email to