You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat 8.5.100禁用TLS 1.0/1.1失败,请求技术协助

如何在Tomcat 8.5.100(Java 8)中禁用TLS 1.0和TLS 1.1?

问题背景

管理的网站经漏洞扫描发现仍支持TLS 1.0和TLS 1.1,需禁用这两个协议提升安全性,但尝试多种操作后未解决。

  • 服务器:Tomcat 8.5.100
  • Java版本:Java 8

已尝试的操作

  1. 修改server.xml的Connector配置:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" server="Server" />
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" 
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
    keystoreFile="/path" keystorePass="password"
           clientAuth="false" sslProtocol="TLSv1.2" sslEnabledProtocols="TLSv1.2"  URIEncoding="UTF-8" 
               Ciphers="ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-GCM-SHA384,
         ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305,
         ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-GCM-SHA256,
         ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-SHA384,
         ECDHE-ECDSA-AES128-SHA256, ECDHE-RSA-AES128-SHA256"
/>
  • 设置protocol="org.apache.coyote.http11.Http11Protocol"无效
  • 移除ciphers属性后无改善
  • 尝试<SSLHostConfig>标签导致Tomcat重启失败,日志报错:
Multiple SSLHostConfig elements were provided for the host name [_default_]. Hostnames must be unique.
  1. 修改java.security文件:
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, TLSv1, TLSv1.1, MD5withRSA, DH keySize < 1024, \
    EC keySize < 224, 3DES_EDE_CBC, anon, NULL
  1. 使用openssl测试会话协议为TLSv1.2,但漏洞扫描仍显示支持TLS 1.0/1.1

解决方案

1. 修正Tomcat server.xml的SSL配置(推荐方式)

Tomcat 8.5推荐使用org.apache.coyote.http11.Http11NioProtocol作为协议,并且通过SSLHostConfig+Certificate子标签统一配置SSL,避免重复默认主机冲突。

替换原443端口的Connector配置为:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           URIEncoding="UTF-8" server="Server">
    <SSLHostConfig protocols="TLSv1.2" sslProtocol="TLS">
        <!-- 若Java 8版本为u261及以上,可添加TLSv1.3:protocols="TLSv1.2,TLSv1.3" -->
        <Certificate certificateKeystoreFile="/path"
                     certificateKeystorePassword="password"
                     type="RSA" />
        <Ciphers>ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,
ECDHE-ECDSA-CHACHA20-POLY1305,ECDHE-RSA-CHACHA20-POLY1305,
ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,
ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES256-SHA384,
ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256</Ciphers>
    </SSLHostConfig>
</Connector>
  • 检查server.xml中是否存在其他包含SSLHostConfig的Connector配置,若有需合并或删除重复的默认主机配置,避免触发Multiple SSLHostConfig错误

2. 确保Java安全配置生效

修改java.security后必须重启Tomcat,同时检查Tomcat启动脚本是否覆盖了该配置:

  • 查看catalina.sh(Linux)或catalina.bat(Windows)中的JAVA_OPTS参数,若存在-Djdk.tls.disabledAlgorithms,需同步更新其值,确保包含TLSv1,TLSv1.1

3. 验证配置有效性

除openssl外,可通过以下方式确认:

  • 使用nmap扫描:nmap --script ssl-enum-ciphers -p 443 your-domain.com,查看返回的支持协议列表
  • 查看Tomcat启动日志catalina.out,搜索SSL关键字,确认启用的协议仅包含TLSv1.2

4. 排查隐藏问题

  • 若配置后漏洞扫描仍异常,检查是否存在反向代理/负载均衡:部分代理会终止外部SSL连接,再以TLS 1.0/1.1与Tomcat通信,需同时在代理层禁用旧协议
  • 确认Tomcat使用的Java环境为修改java.security的版本,避免系统中存在多版本Java导致配置未生效

内容的提问来源于stack exchange,提问作者beloved_ini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:02:27