curl: (35) SSL connect error 表示 curl 在建立 TLS 连接阶段失败,常见原因包括系统 NSS/OpenSSL 版本过旧、证书链不完整、服务器只支持较新的加密套件,或中间网络设备拦截了 TLS 握手。原文提到的场景是 NSS 版本过旧,可以通过更新系统组件排查。
CentOS / RHEL 系更新 NSS
在确认系统软件源可用的前提下,可执行 yum -y update nss 更新 NSS 相关组件。更新完成后运行 curl -V 查看版本,再重新访问目标地址。若服务器使用其他发行版,应改用对应的包管理命令,例如 Debian/Ubuntu 可更新 libssl 和 ca-certificates。
进一步排查
- 使用
curl -vI https://目标域名查看握手阶段的具体报错。 - 检查系统时间是否准确,时间偏差过大会导致证书校验失败。
- 确认服务器根证书包已更新,避免缺少中间证书。
- 检查防火墙、代理或 CDN 是否替换了证书,导致客户端看到的证书链异常。
不建议的做法
不要为了临时连通而长期使用 -k 跳过证书校验,这会让连接失去身份验证能力。应优先更新客户端组件、补齐证书链或调整服务器协议配置。生产环境修改前先备份配置,并在测试环境验证后再上线。
记录排查结果
更新组件后如果问题仍存在,建议保存 curl -v 的完整输出、系统版本和证书链信息,再联系服务商或运维排查。不要在生产服务器上直接升级所有软件包,应先确认软件源和依赖关系,避免影响其他业务。