Watch at Ease看见世界,读懂生活。

科技 · 实用指南

curl 错误 35:改密码套件前先标出最后成功的 TLS 边界

错误 35 只说明 SSL/TLS 握手失败,并不说明原因。先记录 curl 构建、代理路径和详细序列,再只改变一个边界并复测。

原创编辑示意图:标出 TCP、代理 CONNECT、ClientHello、ServerHello 和证书验证边界。
原创编辑示意图:修改安全设置前,先标出最后完成的边界。 Watch at Ease

curl 错误 35 是一组握手失败,而不是单一诊断。关键线索是最后完成的边界:TCP、代理 CONNECT、ClientHello、ServerHello 或证书验证。修改安全设置前先保留这条序列。

固定准确的失败路径

记录不含秘密的准确 URL、运行主机、代理环境、IP 族和 curl -V。版本输出会标出 curl 构建和 TLS 后端;不同后端的报错文字并不相同。

记录最后被证明的边界

对无副作用请求运行 curl -v,并在脱敏后保留有序传输行。TCP 成功只证明路由和监听;代理返回 CONNECT 200 只证明隧道。发送 ClientHello 证明已尝试 TLS,收到告警或 ServerHello 才推进边界。

按第一个缺失步骤分类

ServerHello 前出现 HTTP 字节或 wrong version number,常指向非 TLS 服务、错误端口或代理协议错配。ClientHello 后重置要查服务器、检查设备、SNI、协议或策略。已收到证书后验证失败属于信任或身份分支。

用 s_client 独立复现

使用相同主机、端口和 SNI 运行 openssl s_client;只有 curl 确实经过 HTTP CONNECT 代理时才加入代理参数。它能显示协议、告警、证书和验证边界,但不能证明所有 curl 后端策略相同。

一次只改变一个边界

只复测一个变量:正确端口、政策允许时的直连与代理、同一主机配批准 IP,或一个协议范围。不要同时叠加 insecure、密码套件、绕过代理和升级。边界不移动就恢复。

不削弱信任地证明修复

重复原失败命令,保存同一边界账本和唯一改动。保持证书和主机名验证开启。curl 提醒详细与跟踪日志可能含敏感数据,保留诊断顺序后再脱敏。

原创编辑示意图:比较基线、一个被改变的边界及复测结论。
原创编辑示意图:一次改动回答一个问题,并保持可回退。 Watch at Ease