如何解决Nessus扫描检测到的TLS 1.0/1.1协议漏洞
修复方案
一、定位4567端口的关联进程
先找出哪个进程在监听4567端口,执行以下命令:ss -tulpn | grep 4567
或netstat -tulpn | grep 4567
确认是目标Java应用进程后,找到对应的启动脚本或应用配置文件。
二、强制Java应用仅启用TLSv1.2
1. 添加JVM启动参数
在应用的启动脚本中加入以下参数,全局禁用TLS1.0/1.1并限制弱密码套件:
-Djdk.tls.client.protocols=TLSv1.2 -Dhttps.protocols=TLSv1.2 -Djdk.tls.disabledAlgorithms="SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL"
2. 调整应用内部SSL配置(如果有)
如果应用自身有SSL配置项(比如Spring Boot的application.properties/application.yml),明确指定仅支持TLSv1.2和强密码套件:
示例(Spring Boot):
server.ssl.enabled-protocols=TLSv1.2 server.ssl.ciphers=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
三、验证修复结果
重启应用后,用以下命令验证4567端口的TLS协议支持:
- 测试TLS1.0,应连接失败:
openssl s_client -connect localhost:4567 -tls1 - 测试TLS1.1,应连接失败:
openssl s_client -connect localhost:4567 -tls1_1 - 测试TLS1.2,应连接成功:
openssl s_client -connect localhost:4567 -tls1_2
也可以用nmap扫描确认协议和套件:nmap --script ssl-enum-ciphers -p 4567 localhost
结果应仅显示TLSv1.2相关内容。
四、补充:对齐系统加密策略
确保Java应用使用的加密策略与系统DEFAULT策略一致:
检查/etc/crypto-policies/back-ends/java.config文件,确认包含jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, ...
若缺失,执行update-crypto-policies --set DEFAULT刷新策略,然后重启Java应用。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

