如何在Undertow(JDK8)上禁用TLS1.1

时间:2019-09-20 07:49:45

标签: undertow

在Java 8项目中,我正在使用Undertow webserver(v2.0.25)。这是一个独立的设置,不涉及WildFly。

我想禁用TLSv1.2以下的所有TLS协议,以提高安全性。但是我能找到的所有文档都是关于WildFly的,同样,我没有使用。

在Spring Boot中,我可以设置server.ssl.enabled-protocols系统属性。

在WildFly中,我可以设置

<https-listener name="https" socket-binding="https" security-realm="sslRealm" enabled-protocols="TLSv1.2"/>

令人失望地缺少Undertow文档。

如何设置/限制已启用的协议?

1 个答案:

答案 0 :(得分:1)

使用Undertow.builder(),您需要的是setSocketOption这样的方法:

Undertow.builder()//add your build code like https listener, server options, etc
        .setSocketOption(Options.SSL_ENABLED_PROTOCOLS, Sequence.of("TLSv1.2","TLSv1.3"))

以上调用将禁用所有低于1.2的TLS版本,setSocketOption适用于XNIO级别,这是underwow的传输层,OptionsSequence类也来自XNIO。

请注意,我已添加TLS 1.3,它是撰写本文时的最新版本,并且受所有常绿浏览器(但IE)不支持。不过,请务必使用支持该功能的提供程序,如果您使用的是JDK SSL提供程序,请确保您使用的是Java 11+。否则,请参阅您的提供程序的文档,谷歌Conscrypt找到了支持TLS1.3的SSL提供程序{ {3}}