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

升级RHEL 8后curl与Java调用外部API均出现SSL握手失败问题

排查思路
  • 优先验证系统加密策略适配性
    RHEL 8默认启用全局加密策略(crypto-policies),默认规则禁用了TLS 1.0、TLS 1.1以及多款弱加密套件,若目标API仅支持旧版本TLS协议或弱加密套件,会直接导致握手中断。
    执行update-crypto-policies --show查看当前策略,默认值为DEFAULT,可临时切换为兼容旧协议的LEGACY策略验证:
    update-crypto-policies --set LEGACY
    执行后重新运行curl命令测试,若恢复正常即可确认根因是加密策略限制,后续可自定义加密策略仅放开目标服务需要的协议/套件,无需长期使用LEGACY策略降低系统整体安全性。
  • 验证Zscaler代理SSL拦截兼容性
    日志显示你使用了Zscaler代理,该类企业代理默认会做SSL中间人拦截,将目标服务证书替换为代理自签发证书。需确认你curl参数中--cacert指定的xxx.pem文件是否已导入Zscaler的根证书,也可临时添加-k参数跳过证书校验测试连通性,若添加-k后请求正常,补充导入代理根证书到证书文件即可。
  • 手动指定TLS版本测试
    分别指定不同TLS版本发起请求,确认目标服务支持的协议范围:
    指定TLS 1.2测试:curl --tlsv1.2 --tls-max 1.2 [原有其他参数]
    指定TLS 1.1测试:curl --tlsv1.1 --tls-max 1.1 [原有其他参数]
    根据返回结果判断是否为TLS版本不匹配问题。
  • Java侧配置排查
    RHEL 8自带的OpenJDK会继承系统全局加密策略,也可单独检查JDK配置文件jre/lib/security/java.security中的jdk.tls.disabledAlgorithms项,确认是否禁用了目标服务需要的加密算法或协议,可临时注释对应限制项测试。
  • 抓包确认握手失败节点
    用tcpdump抓取客户端到代理443端口的流量,查看TLS握手阶段客户端Hello携带的协议版本、加密套件列表,确认是否是服务端/代理直接返回RST包中断连接,定位协商失败的具体原因。
  • 代理权限二次验证
    虽然日志显示CONNECT请求已返回200,但可二次确认当前机器是否在Zscaler代理的TLS访问白名单中,是否有针对新系统的访问限制规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:36:04