Skip to content

Commit 6af89eb

Browse files
GitHub Issue 692: Stop using CBC in HTTPS ciphers (#1226)
* GitHub Issue 692: Stop using CBC in HTTPS ciphers * Remove old defaults from application.properties
1 parent dbf7023 commit 6af89eb

File tree

4 files changed

+27
-8
lines changed

4 files changed

+27
-8
lines changed

server/bootstrap/src/org/labkey/bootstrap/ModuleArchive.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ public static void ensureChild(File parent, File child) throws IOException
267267

268268
public File extractEntry(JarFile jar, JarEntry entry, File targetDirectory) throws IOException
269269
{
270-
@SuppressWarnings("SSBasedInspection") File destFile = new File(targetDirectory, entry.getName());
270+
@SuppressWarnings({"SSBasedInspection", "JvmTaintAnalysis"}) File destFile = new File(targetDirectory, entry.getName());
271271
ensureChild(targetDirectory, destFile);
272272

273273
File entryParent = destFile.getParentFile();

server/configs/application.properties

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@ server.port=@@serverPort@@
66
## To use ssl, update the properties below for your local installation
77

88
#server.ssl.enabled=true
9-
#server.ssl.enabled-protocols=TLSv1.3,TLSv1.2
10-
#server.ssl.protocol=TLS
119
#server.ssl.key-alias=tomcat
1210
#server.ssl.key-store=@@keyStore@@
1311
#server.ssl.key-store-password=@@keyStorePassword@@
1412
## Typically either PKCS12 or JKS
1513
#server.ssl.key-store-type=PKCS12
16-
#server.ssl.ciphers=HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA:!EDH:!DHE:!DH:!CAMELLIA:!ARIA:!AESCCM:!SHA:!CHACHA20
1714

1815
## HTTP-only port for servers that need to handle both HTTPS (configure via server.port and server.ssl above) and HTTP
1916
#context.httpPort=8080

server/configs/webapps/embedded/config/application.properties

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,12 @@ context.encryptionKey=@@encryptionKey@@
4141
server.port=80
4242

4343
## To use HTTPS, update and uncomment the necessary properties below.
44-
## Learn more here: https://www.labkey.org/Documentation/wiki-page.view?name=labkeyssl
44+
## Learn more here: https://www.labkey.org/Documentation/wiki-page.view?name=labkeyHTTPS
4545
#server.ssl.enabled=true
46-
#server.ssl.enabled-protocols=TLSv1.3,TLSv1.2
47-
#server.ssl.protocol=TLS
4846
#server.ssl.key-alias=tomcat
4947
#server.ssl.key-store=@@keyStore@@
5048
#server.ssl.key-store-password=@@keyStorePassword@@
5149
#server.ssl.key-store-type=PKCS12
52-
#server.ssl.ciphers=HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA:!EDH:!DHE:!DH:!CAMELLIA:!ARIA:!AESCCM:!SHA:!CHACHA20
5350

5451
server.error.include-stacktrace=always
5552
server.error.include-message=always

server/embedded/src/org/labkey/embedded/LabKeyServer.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,31 @@ public static void main(String[] args)
113113

114114
put("csp.enforce", enforceCsp);
115115
put("csp.report", reportCsp);
116+
117+
// GitHub Issue 692: Stop using CBC in HTTPS ciphers
118+
// These settings configure HTTPS. Admins must opt in with additional settings
119+
// in application.properties, like the key store. Without those other settings,
120+
// HTTP-only startup fails unless "server.ssl.enabled" is explicitly set to false here
121+
put("server.ssl.enabled", "false");
122+
put("#server.ssl.protocol", "TLS");
123+
put("server.ssl.enabled-protocols", "TLSv1.3,TLSv1.2");
124+
// Use explicit JSSE cipher suite names to avoid CBC-mode suites
125+
put("server.ssl.ciphers",
126+
String.join(",",
127+
// TLS 1.3
128+
"TLS_AES_256_GCM_SHA384",
129+
"TLS_AES_128_GCM_SHA256",
130+
"TLS_CHACHA20_POLY1305_SHA256",
131+
// TLS 1.2 (AEAD only, no CBC)
132+
"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
133+
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
134+
"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
135+
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
136+
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
137+
"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
138+
)
139+
);
140+
put("server.ssl.use-cipher-suites-order", "true");
116141
}}
117142
);
118143
application.setBannerMode(Banner.Mode.OFF);

0 commit comments

Comments
 (0)