0

0

composer如何解决由于OpenSSL版本过旧导致的连接失败_composer安全指南【实战】

穿越時空

穿越時空

发布时间:2026-01-17 09:16:02

|

953人浏览过

|

来源于php中文网

原创

composer ssl错误通常因openssl过旧导致,解决步骤包括:一、升级系统openssl并重编php;二、配置composer使用更新的ca证书包;三、仅调试时临时禁用tls验证;四、切换国内镜像并启用兼容模式;五、用docker封装新版openssl环境。

composer如何解决由于openssl版本过旧导致的连接失败_composer安全指南【实战】

如果您在使用 Composer 安装或更新依赖时遇到 SSL 连接失败、证书验证错误或 “cURL error 60” 等提示,则很可能是系统中 OpenSSL 版本过旧,无法支持现代 TLS 协议(如 TLS 1.2/1.3)或无法验证 Packagist.org 等源使用的证书链。以下是解决此问题的步骤:

一、升级系统 OpenSSL 并重新编译 PHP

OpenSSL 是 PHP cURL 和 stream 扩展底层依赖的加密库,旧版 OpenSSL(如 1.0.1 或更早)已停止维护,不支持 SNI 或现代证书签名算法,导致无法与 Packagist HTTPS 接口建立安全连接。升级 OpenSSL 后需确保 PHP 重新链接到新版库。

1、检查当前 OpenSSL 版本:openssl version -a

2、检查 PHP 使用的 OpenSSL 版本:php -r "print_r(openssl_get_cipher_methods());" 并确认 php --ri openssl 中显示的版本号

3、在 Ubuntu/Debian 上执行:sudo apt update && sudo apt install -y openssl libssl-dev

4、在 CentOS/RHEL 7+ 上执行:sudo yum install -y openssl-devel 或使用 dnf install -y openssl-devel

5、若 PHP 为源码编译安装,进入 PHP 源码目录后运行:make clean && ./configure --with-openssl=/usr --with-curl --with-zlib && make && sudo make install

二、配置 Composer 使用替代 CA 证书包

Composer 默认依赖系统 CA 证书路径,但旧系统可能缺少 Let’s Encrypt ISRG Root X1 等新根证书。可显式指定一个更新的证书包路径,绕过系统自带证书限制。

1、下载最新 Mozilla CA 包:curl -sS https://curl.se/ca/cacert.pem -o /usr/local/share/ca-certificates/composer-cacert.pem

2、更新系统证书存储(Ubuntu/Debian):sudo cp /usr/local/share/ca-certificates/composer-cacert.pem /usr/share/ca-certificates/ && sudo update-ca-certificates

3、为 Composer 单独设置证书路径:composer config -g cafile /usr/local/share/ca-certificates/composer-cacert.pem

4、验证配置是否生效:composer config -g cafile 应输出对应路径

三、临时禁用 TLS 验证(仅限调试环境)

该方法绕过证书校验,**绝不适用于生产环境或含敏感凭证的项目**,仅用于快速定位是否为证书验证环节引发的连接失败。

1、全局禁用 SSL 验证:composer config -g secure-http false

OneStory
OneStory

OneStory 是一款创新的AI故事生成助手,用AI快速生成连续性、一致性的角色和故事。

下载

2、强制使用 HTTP 协议源(风险极高):composer config -g repo.packagist.org.url http://packagist.org

3、清除配置缓存:composer clear-cache

4、执行测试命令:composer diagnose 应不再报 SSL 相关错误

四、切换至国内镜像并启用 TLS 兼容模式

部分国内镜像(如阿里云、腾讯云)提供针对旧 OpenSSL 的兼容接口,其 Nginx 配置保留 TLS 1.0/1.1 支持,并采用较宽松的证书链策略,可作为过渡方案。

1、设置阿里云镜像源:composer config -g repo.packagist.org.url https://mirrors.aliyun.com/composer/

2、禁用证书域名验证(非禁用全部验证):export COMPOSER_CAFILE=/dev/null

3、执行更新命令前重载环境变量:source ~/.bashrc 或直接在当前 shell 运行 export 命令

4、运行诊断:composer diagnose -v 观察是否仍出现 “unable to verify the first certificate”

五、使用 Docker 封装兼容运行环境

当宿主机 OpenSSL 无法升级(如受限于老旧企业 OS),可通过官方 PHP Docker 镜像启动带新版 OpenSSL 的 Composer 环境,完全隔离系统依赖。

1、拉取带 OpenSSL 3.0+ 的 PHP 镜像:docker pull php:8.2-cli

2、创建本地 composer.json 映射目录:mkdir -p ~/my-project && cd ~/my-project

3、在项目目录内运行容器化 Composer:docker run --rm -it -v $(pwd):/app -w /app php:8.2-cli sh -c "curl -sS https://getcomposer.org/installer | php && php composer.phar install"

4、确认依赖正确解析:docker run --rm -v $(pwd):/app -w /app php:8.2-cli php composer.phar show --platform

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

161

2023.12.25

nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

520

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

588

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

244

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

651

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3613

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

53

2026.01.13

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

2

2026.03.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 13万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号