在 jboss 7.0.0 GA 中启用 TLSv1.3

Enable TLSv1.3 in jboss 7.0.0 GA

我正在尝试在 jboss 7.0.0 GA 中启用 TLSv1.3,如下所示

<https-listener name="default-https" enabled-protocols="TLSv1.1,TLSv1.2,TLSv1.3" security-realm="ApplicationRealm" socket-binding="https"/>

我可以通过 TLSv1.1 和 TLSv1.2 连接,但在尝试通过 TLSv1.3 连接时出现以下错误。

Caused by: java.security.NoSuchAlgorithmException: TLSv1.3 SSLContext not available
    at sun.security.jca.GetInstance.getInstance(GetInstance.java:159) ~[?:1.8.0_144]
    at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156) ~[?:1.8.0_144]
    at org.xnio.ssl.JsseSslUtils.createSSLContext(JsseSslUtils.java:90) ~[jboss-client-7.0.0.GA-redhat-2.jar:7.0.0.GA-redhat-2]
    at org.xnio.ssl.JsseSslUtils.createSSLContext(JsseSslUtils.java:67) ~[jboss-client-7.0.0.GA-redhat-2.jar:7.0.0.GA-redhat-2]
    at org.xnio.ssl.JsseXnioSsl.<init>(JsseXnioSsl.java:79) ~[jboss-client-7.0.0.GA-redhat-2.jar:7.0.0.GA-redhat-2]
    at org.xnio.Xnio.getSslProvider(Xnio.java:272) ~[jboss-client-7.0.0.GA-redhat-2.jar:7.0.0.GA-redhat-2]
    at org.jboss.remoting3.remote.RemoteConnectionProvider.connect(RemoteConnectionProvider.java:207) ~[jboss-client-7.0.0.GA-redhat-2.jar:7.0.0.GA-redhat-2]
    at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:326) ~[jboss-client-7.0.0.GA-redhat-2.jar:7.0.0.GA-redhat-2]
    ... 68 more

TLS 1.3 规范仍然是 in draft,在 Java 中尚不可用。

Java 安全套接字扩展 reference guide 列出了当前支持的协议。

更新

Java 11

现在支持 TLS 1.3

从 WildFly 11 开始(我不知道向后移植到哪个 JBoss EAP)假设您拥有 OpenSSL 1.1.1 或更高版本,您应该能够通过 OpenSSL 使用 TLS 1.3。

http://wildfly.org/news/2017/10/06/OpenSSL-Support-In-Wildfly/