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

HAproxy日志SSL handshake failure相关/1、~符号含义及报错解决

HAProxy日志符号含义及SSL握手失败解决方案

日志特殊符号含义

  • /N(如示例中的/1):表示客户端连接命中了该frontend下的第N个bind配置项,计数从1开始。如果你在单个frontend下配置了多个端口监听规则,可通过该标识快速定位请求命中的监听端口。
  • ~:表示当前连接已经完成SSL握手,成功进入HTTP层处理逻辑,仅HTTPS/SSL卸载模式下会出现该标识。

注意:SSL handshake failure属于SSL层握手阶段的报错,请求还未完成SSL校验,因此这类报错日志不会携带~标识,如果你观察到同时间段同时存在带~的日志和SSL握手失败日志,属于两条独立的请求日志,没有关联。

SSL handshake failure 常见解决方法

1. TLS版本不兼容

大部分HAProxy默认配置会禁用TLS1.0、TLS1.1等老旧不安全协议,如果你的业务存在旧浏览器、嵌入式设备等使用低版本TLS的客户端,就会触发握手失败。
解决:在对应frontend的bind配置中调低最低支持的TLS版本,示例:

bind 0.0.0.0:443 ssl crt /etc/haproxy/ssl/ ssl-min-ver TLSv1.0

2. SNI匹配失败

如果你配置了多域名证书或基于SNI的证书选择逻辑,客户端请求未携带SNI字段、或携带的域名没有对应配置证书时会触发握手失败。
解决:配置默认证书兼容无SNI的客户端,示例:

bind 0.0.0.0:443 ssl crt /etc/haproxy/ssl/default.pem crt /etc/haproxy/ssl/

3. 证书配置异常

证书路径错误、文件权限不足导致HAProxy无法读取、证书链不完整、证书格式错误都会触发握手失败。
解决:

  • 执行haproxy -c -f /etc/haproxy/haproxy.cfg检查配置合法性,确认证书配置无报错
  • 调整证书文件权限为600,确保所属用户和HAProxy运行用户一致
  • 检查证书是否为完整pem格式,包含域名证书、中间证书链、私钥三部分内容

4. 客户端主动断连

端口扫描工具的半连接探测、客户端发起握手后主动断开网络都会触发该报错,如果这类日志占比极低,属于正常场景无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:36:03