java如何启用TLSv1。3在Tomcat8.5.5中使用JSSE实现
我们正在tomcat服务器8.5.5上运行spring引导应用程序。我们为它配置了安全证书和SSL以支持https。目前is使用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握手成功
我们如何配置服务器。用于支持TLSv1的xml连接器块。3是我们想要弄清楚的。任何输入、提示都会有帮助
# 1 楼答案
同时使用
sslProtocol="TLS"
和sslEnabledProtocols="TLSv1.2+TLSv1.3"
。 这对我很有用(在使用Java13.0.1的Tomcat9上)