在我的Java 8项目中,我使用的是Undertow Web服务器(v2.0.25(。这是一个独立的设置,不涉及野蝇。
我想禁用 TLSv1.2 以下的所有 TLS 协议以提高安全性。但是我能找到的所有文档都是针对 WildFly 的,同样,我没有使用。
在 Spring Boot 中,我可以设置server.ssl.enabled-protocols
系统属性。
在《野蝇》中,我可以设置
<https-listener name="https" socket-binding="https" security-realm="sslRealm" enabled-protocols="TLSv1.2"/>
令人失望的是,缺乏Undertow文档。
如何设置/限制启用的协议?
通过使用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 级别工作,XNIO 级别是 undertow 的传输层,Options
和Sequence
类也来自 XNIO。
请注意,我已经添加了TLS 1.3,这是截至撰写本文时的最新版本,并且所有常青浏览器(但不包括IE(都支持。 请务必使用支持它的提供程序,如果您使用的是JDK SSL提供程序,请确保使用的是Java 11 +.,否则请参阅提供程序的文档,支持TLS1.3的SSL提供程序是Google Conscrypt 在这里找到