在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文档。
如何设置/限制已启用的协议?
答案 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的传输层,Options
和Sequence
类也来自XNIO。
请注意,我已添加TLS 1.3,它是撰写本文时的最新版本,并且受所有常绿浏览器(但IE)不支持。不过,请务必使用支持该功能的提供程序,如果您使用的是JDK SSL提供程序,请确保您使用的是Java 11+。否则,请参阅您的提供程序的文档,谷歌Conscrypt找到了支持TLS1.3的SSL提供程序{ {3}}