【发布时间】: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 是我们正在努力解决的问题。任何输入、提示都会有所帮助。
【问题讨论】: