【问题标题】:How to enable TLSv1.3 in tomcat 8.5.5 using JSSE implementation如何使用 JSSE 实现在 tomcat 8.5.5 中启用 TLSv1.3
【发布时间】:2020-06-23 08:49:44
【问题描述】:

我们正在 Tomcat 服务器 8.5.5 上运行一个 Spring Boot 应用程序。我们为其配置了安全证书和 SSL 以支持 https。目前使用的是 TLSv1.2。我们的支付网关提供商计划停止对 TLSv1.2 的支持并继续仅支持 TLSv1.3。 因此,我们想为我们的应用服务器添加 TLSv1.3 支持。下面是带有 TLSv1.3 所需密码的连接器块。

<Connector port="443" maxThreads="150" scheme="https" secure="true" SSLEnabled="true" keystoreFile="/home/ubuntu/ourkey.p9" 
               keystorePass="ourpass" clientAuth="false" keystoreType="keystore" 
               sslProtocol="TLSv1.2" sslEnabledProtocols="TLSv1.2+TLSv1.3" protocol="org.apache.coyote.http11.Http11NioProtocol" server="Web"
                 useServerCipherSuitesOrder="true"           
                  ciphers="TLS_AES_256_GCM_SHA384,
    TLS_CHACHA20_POLY1305_SHA256,
    TLS_AES_128_GCM_SHA256,
    TLS_AES_128_CCM_8_SHA256,
    TLS_AES_128_CCM_SHA256,
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,... other ciphers/>

我们正在使用 JSSE 实现,到目前为止还没有找到适用于 tomcat 的具体文档。官方文档有如下连接块:

<!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="${user.home}/.keystore" keystorePass="changeit"
           clientAuth="false" sslProtocol="TLS"/>

这里的 sslProtocol 属性具有 TLS,默认为 TLS 版本 1.2。我们尝试将其更改为 TLSv1.3,但没有成功。此外,正如提到的 here 尝试添加 sslEnabledProtocol 属性。那也没有用。我们添加了 TLSv1.3 握手成功所需的必要密码。

我们如何配置 server.xml 连接器块以支持 TLSv1.3 是我们正在努力解决的问题。任何输入、提示都会有所帮助。

【问题讨论】:

    标签: java ssl tomcat tls1.2


    【解决方案1】:

    同时使用sslProtocol="TLS"sslEnabledProtocols="TLSv1.2+TLSv1.3"。 这对我有用(在带有 java 13.0.1 的 tomcat 9 上)

    【讨论】:

      猜你喜欢
      • 2019-04-23
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 2019-08-27
      相关资源
      最近更新 更多