如何在RHEL系统的指定端口禁用TLS 1.0协议
解决端口4567启用TLS 1.0的问题
第一步:确认4567端口的监听进程
先明确是Apache还是Java应用在监听该端口,执行以下命令:
ss -tulpn | grep 4567
或
netstat -tulpn | grep 4567
根据输出判断进程类型(Apache/httpd或Java进程)。
情况一:Apache监听4567端口
若为Apache处理该端口请求,大概率是该端口的虚拟主机配置覆盖了全局SSL协议设置:
- 查找对应4567端口的虚拟主机配置文件,通常位于
/etc/httpd/conf.d/或/etc/httpd/sites-available/目录下(后缀为.conf)。 - 打开配置文件,检查是否存在
SSLProtocol配置项。如有,修改为:
SSLProtocol -ALL +TLSv1.2
如无,将上述配置添加到该虚拟主机的<VirtualHost>块内的SSL配置区域。
3. 重启Apache生效:
systemctl restart httpd
- 验证TLS 1.0是否禁用:
openssl s_client -connect <IP_ADDRESS>:4567 -tls1
若提示握手失败则禁用成功,也可通过nmap确认:
nmap -sV --script ssl-enum-ciphers -p 4567 <IP_ADDRESS>
情况二:Java应用直接监听4567端口
若为Java应用本身监听该端口,需修改应用的SSL配置:
- 通过JVM启动参数设置:在应用启动脚本中添加以下JVM参数,强制启用TLS 1.2:
-Djdk.tls.client.protocols=TLSv1.2 -Dhttps.protocols=TLSv1.2 -Djdk.tls.server.protocols=TLSv1.2
如果是Tomcat容器,可将参数添加到catalina.sh的JAVA_OPTS变量中。
2. 修改容器配置(以Tomcat为例):打开conf/server.xml,找到SSL连接器配置,修改协议相关属性:
<Connector port="4567" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig protocols="TLSv1.2"> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" /> </SSLHostConfig> </Connector>
- 重启Java应用或容器。
- 用上述
openssl或nmap命令验证TLS 1.0是否禁用。
额外检查
- 若Java应用有自定义SSL配置代码,确保未硬编码启用TLS 1.0/1.1。
- 验证完成后重新用Nessus扫描确认漏洞修复。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

