cfhttp doesn't support TLSv1.3

Description

cfhttp is hardwired to only support TLSv1.2

https://github.com/lucee/Lucee/blob/6.0/core/src/main/java/lucee/runtime/tag/Http.java#L1409

TLSv1.3 is faster and some websites (like financial institutions) only support TLSv1.3 now

https://kinsta.com/blog/tls-1-3/

https://bugs.openjdk.java.net/browse/JDK-8202625

So now if your JVM supports TLSv1.3, Lucee will use it

Environment

None

Activity

Zac Spitzer 7 May 2021 at 14:06

for 5.3 as well

Zac Spitzer 14 April 2021 at 14:57

Pete Freitag 14 April 2021 at 14:42

Ok I did some testing on Lucee 6.0.0.88-SNAPSHOT with getInstance(“TLS”) in use.

I set the java system property:

-Djdk.tls.client.protocols=TLSv1,TLSv1.3,TLSv1.2

And then tried connecting to sites running on TLSv1, TLSv1.1, TLSv1.2, and TLSv1.3. It only allowed connecting to TLSv1, TLSv1.3 and TLSv1.2, the connection to the TLSv1.1 failed (yay!).

I also tested this on Lucee 6.0.0.14-SNAPSHOT where I am guessing it had getInstance(“TLSv1.2”) in that case it was ignoring the jdk.tls.client.protocols system property, the only way to get that version to behave was to edit the JVM java security.properties, and use jdk.tls.disabledAlgorithms

It is much easier to use the system properties than to edit the jvm security properties.

Pete Freitag 14 April 2021 at 13:23

Ok, I’m not sure if jdk.tls.client.protocols and jdk.tls.disabledAlgorithms still work with that, if so then I think that is ok.

This site: https://badssl.com/ has a bunch of servers setup to test various aspects of HTTPS. They don’t have one for TLSv3 yet, but they do have:

https://tls-v1-2.badssl.com:1012/

https://tls-v1-1.badssl.com:1011/

https://tls-v1-0.badssl.com:1010/

Zac Spitzer 13 April 2021 at 21:26

Fixed

Details

Assignee

Reporter

Priority

Fix versions

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Affects versions

Created 25 January 2021 at 10:10
Updated 2 June 2021 at 12:51
Resolved 14 April 2021 at 14:58