如何解决Composer TLS握手失败问题?

2026-04-30 11:231阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1036个文字,预计阅读时间需要5分钟。

如何解决Composer TLS握手失败问题?

Composer 安装或更新时出现 SSL handshake failed 或报错 cURL error 35、SSL connect error,基本原因是本地 TLS 环境与 Packagist/Repo 服务器不兼容,不是 Composer 本身 bug,也不需要直接关闭 SSL 验证。

为什么 Composer 会 SSL 握手失败

根本原因通常是 OpenSSL 版本过旧(如系统自带的 OpenSSL 1.0.x)、CA 证书陈旧、或中间网络设备(公司代理、防火墙、DNS 污染)篡改了 TLS 握手流程。Packagist 自 2023 年起强制要求 TLS 1.2+ 和现代密码套件,老系统(如 CentOS 7 默认 OpenSSL 1.0.2k)无法协商成功。

  • 常见错误信息:cURL error 35: SSL connect errorSSL handshake failedPeer certificate cannot be authenticated
  • 不是所有 HTTPS 网站都出问题,只影响 https://packagist.org 及镜像(如阿里云、腾讯云镜像),说明问题出在服务端 TLS 配置升级后客户端不匹配
  • composer diagnose 会明确提示 curl: (35) SSL connect error,这是第一排查线索

检查并升级本地 OpenSSL 和 cURL

Composer 依赖 PHP 的 cURL 扩展,而 cURL 又依赖底层 OpenSSL。

阅读全文
标签:ComposerSSL

本文共计1036个文字,预计阅读时间需要5分钟。

如何解决Composer TLS握手失败问题?

Composer 安装或更新时出现 SSL handshake failed 或报错 cURL error 35、SSL connect error,基本原因是本地 TLS 环境与 Packagist/Repo 服务器不兼容,不是 Composer 本身 bug,也不需要直接关闭 SSL 验证。

为什么 Composer 会 SSL 握手失败

根本原因通常是 OpenSSL 版本过旧(如系统自带的 OpenSSL 1.0.x)、CA 证书陈旧、或中间网络设备(公司代理、防火墙、DNS 污染)篡改了 TLS 握手流程。Packagist 自 2023 年起强制要求 TLS 1.2+ 和现代密码套件,老系统(如 CentOS 7 默认 OpenSSL 1.0.2k)无法协商成功。

  • 常见错误信息:cURL error 35: SSL connect errorSSL handshake failedPeer certificate cannot be authenticated
  • 不是所有 HTTPS 网站都出问题,只影响 https://packagist.org 及镜像(如阿里云、腾讯云镜像),说明问题出在服务端 TLS 配置升级后客户端不匹配
  • composer diagnose 会明确提示 curl: (35) SSL connect error,这是第一排查线索

检查并升级本地 OpenSSL 和 cURL

Composer 依赖 PHP 的 cURL 扩展,而 cURL 又依赖底层 OpenSSL。

阅读全文
标签:ComposerSSL