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

OpenSSL 1.1.1d版本curl触发TLS 1.3握手失败,1.0.1t版本访问正常

不同OpenSSL版本编译的curl SSL握手故障对比梳理

基础环境说明

  • 故障侧运行环境:curl 7.64.0 (x86_64-pc-linux-gnu),配套依赖libcurl/7.64.0 OpenSSL/1.1.1d,访问目标服务时触发SSL握手失败
  • 正常侧运行环境:curl 7.38.0 (x86_64-pc-linux-gnu),配套依赖libcurl/7.38.0 OpenSSL/1.0.1t,相同目标服务可正常完成通信

分场景运行日志

故障场景运行日志

CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS alert, handshake failure (552):
* error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure
* Closing connection 0
curl: (35) error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure

正常场景运行日志

* Connected to kafkaconnect-0.kc.default.svc.cluster.local (10.244.4.107) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / DHE-DSS-AES256-GCM-SHA384
* Server certificate:
*    subject: CN=*.kc.default.svc.cluster.local.keystore.jks
*    start date: 2021-04-16 17:01:03 GMT
*    expire date: 2023-04-16 17:01:03 GMT
*    issuer: CN=Red-Security-CA
*    SSL certificate verify result: self signed certificate in certificate chain (19), continuing anyway.
> GET /connectors HTTP/1.1
> User-Agent: curl/7.38.0

故障触发逻辑对比

  • 协议协商逻辑差异:OpenSSL 1.1.1d 默认启用TLS1.3支持,客户端发出的Client Hello直接携带TLS1.3协商标识;OpenSSL 1.0.1t 原生无TLS1.3支持,客户端发出的Client Hello最高仅能协商至TLS1.2版本
  • 握手中断节点差异:故障侧握手推进到Encrypted Extensions阶段时,即收到服务端返回的握手失败告警;正常侧完整走完证书交换、密钥协商、会话校验全流程,最终协商使用的加密套件为TLSv1.2 / DHE-DSS-AES256-GCM-SHA384
  • 核心触发逻辑:目标服务端不支持TLS1.3协议,且未对TLS1.3格式的Client Hello做兼容降级,同时无法匹配OpenSSL 1.1.1d客户端默认启用的密码套件、TLS1.3要求的签名算法或扩展字段,直接在握手阶段返回告警中断连接

根因验证操作

在故障侧客户端执行强制限定最高TLS版本为1.2的命令:
curl -v --tlsv1.2 --tls-max 1.2 https://kafkaconnect-0.kc.default.svc.cluster.local:443/connectors
命令执行后若握手流程恢复正常,即可确认故障由不同OpenSSL版本的默认协议支持范围差异导致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 03:15:07