解决tomcat关于SSL的漏

本文介绍了一次使用Nessus扫描工具发现并修复Tomcat Web服务中SSL/TLS相关漏洞的过程,包括SSLv3 POODLE漏洞等。通过调整Tomcat配置文件server.xml中的SSL协议和密钥套件设置,成功解决了所有检测到的安全问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、原由

最近使用nessus扫描一款Web服务软件,发现了四个漏洞,如下:

SSL Version 2 and 3 Protocol detection 

SSLv3 Padding Oracle On Downgrade Legacy Encryption Vulnerability(POODLE)

SSL Weak Cipher Suites Supports

SSL/TLS EXPORT_RAS<512-bit Cipher Suites Supported(FREAD)

2、漏洞分析

对每个显示的漏洞点击进去后,发现产生漏洞的端口号:8843
        使用以下命令查找得到进程名:
netstat -ano | findstr "8843"    #得到进程的PID
tasklist | findstr “PID"              #得到进程名
确认问题是因为Tomcat引起的漏洞。

3、解决方案

经过查找tomcat配置ssl协议,得知需要配置tomcat/conf/server.xml文件,里面与SSL协议相关的部分如下:
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="true" sslProtocol="TLS" 
               keystoreFile="conf/tomcat.keystore" keystorePass="123456"
               truststoreFile="conf/tomcat.keystore" truststorePass="123456"/>
上面显示已经将当前的tomcat使用的是TLS协议,但是一直不生效,经过同事的帮助,发现了下面的一段话:

rmeisen:The answers will vary depending on your Tomcat and Java versions, and if you are usingJSSE verses AJP. The differences are assubtle as 

sslProtocols=TLSv1 verses sslProtocol="TLS" (Notice that s). 

Specifying your Tomcat &Java versions will save you from insanity.

于是将配置修改如下:
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="true" sslProtocols="TLSv1"
               keystoreFile="conf/tomcat.keystore" keystorePass="123456"
               truststoreFile="conf/tomcat.keystore" truststorePass="123456"/>
再次扫描,发现漏洞:
SSL Version 2 and 3 Protocol detection 、
SSLv3 Padding Oracle On Downgrade Legacy Encryption Vulnerability(POODLE)已经解决。

继续做如下修改:
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="true" sslProtocols="TLSv1"
               ciphers="TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA,                                             TLS_DHE_DSS_WITH_AES_128_CBC_SHA"
               keystoreFile="conf/tomcat.keystore" keystorePass="123456"
               truststoreFile="conf/tomcat.keystore" truststorePass="123456"/>
剩下的两个漏洞也消失啦。
以后修改配置的时候,一定要注意不同版本的tomcat及jdk的配置之前的差异。


引用相关链接:http://serverfault.com/questions/637649/how-do-i-disable-sslv3-support-in-apache-tomcat
24-Mar-2025 13:43:38.234 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\AAA\USERPROG\Java_DEV\Tomcat9\webapps\manager] 24-Mar-2025 13:43:38.252 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\AAA\USERPROG\Java_DEV\Tomcat9\webapps\manager] has finished in [18] ms java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/customerdb?useSSL=false&serverTimezone=UTC at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:247) at com.example.customer.CustomerDAO.getConnection(CustomerDAO.java:17) at com.example.customer.CustomerDAO.addCustomer(CustomerDAO.java:39) at com.example.customer.CustomerService.register(CustomerService.java:9) at com.example.customer.servlet.RegistServlet.doPost(RegistServlet.java:35) at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.Abstract
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值