0

0

composer如何配置ssl证书_composer常见SSL连接错误解决方法【总结】

穿越時空

穿越時空

发布时间:2026-01-22 16:15:10

|

950人浏览过

|

来源于php中文网

原创

Composer SSL 错误主因是 OpenSSL 证书验证失败,常见于系统 CA 过旧、低版本 OpenSSL、PHP 未链接正确 CA 包或 HTTPS 代理拦截;应通过更新证书、配置 cafile 或导入完整证书链解决,禁用 secure-http 不推荐。

composer如何配置ssl证书_composer常见ssl连接错误解决方法【总结】

Composer 默认通过 HTTPS 连接 Packagist,若系统 CA 证书过旧、代理拦截、或自建镜像启用私有 SSL 证书,就会触发 SSL 握手失败。最直接的判断依据是报错里含 SSL routine:ssl3_get_record:wrong version numberCURLOPT_SSL_VERIFYPEERunable to verify the first certificate —— 这类错误基本不是 Composer 本身的问题,而是 OpenSSL 层面的证书验证失败。

为什么 composer install 突然报 SSL 错误?

常见诱因有三类:系统 OpenSSL 版本太低(如 CentOS 6 自带 OpenSSL 1.0.1e)、PHP 编译时未链接系统最新 CA 包、或公司网络中间有 HTTPS 解密代理(比如 Zscaler、Netskope)。尤其在 Docker 容器或 CI 环境中,基础镜像常精简掉 /etc/ssl/certs/ca-certificates.crt 或未更新证书包。

  • 运行 openssl version -a 查看 OpenSSL 编译路径,确认是否加载了系统证书目录
  • 执行 php -r "print_r(openssl_get_cert_locations());",检查 default_cert_file 指向的文件是否存在且可读
  • 若使用企业代理,尝试临时关闭代理再运行 composer diagnose,观察是否仍报错

如何让 Composer 信任自签名或内网镜像证书?

不要全局禁用 SSL 验证(即避免 composer config -g secure-http false),而应把证书加入 PHP 的信任链。关键是让 PHP 的 OpenSSL 扩展能读到它。

  • 将 PEM 格式证书(如 my-mirror.crt)追加到系统 CA 包:sudo cp my-mirror.crt /usr/local/share/ca-certificates/ && sudo update-ca-certificates
  • 若 PHP 使用独立证书路径(如 Alpine Linux),需显式配置:echo "openssl.cafile=/etc/ssl/certs/ca-certificates.crt" >> /usr/local/etc/php/conf.d/docker-php-ext-openssl.ini
  • 验证是否生效:php -r "var_dump(stream_context_create(['ssl' => ['cafile' => '/etc/ssl/certs/ca-certificates.crt']]));" 不报错即表示路径可读

curl_setopt(): CURLOPT_SSL_VERIFYPEER 错误怎么修?

这个警告实际来自 Composer 底层调用 cURL 时的参数冲突,常见于 PHP 8.0+ 和旧版 cURL 组合,或某些 Windows XAMPP 环境默认关闭了证书验证但又没配好路径。

PathFinder
PathFinder

AI驱动的销售漏斗分析工具

下载
composer config -g cafile /etc/ssl/certs/ca-certificates.crt

这行命令会写入全局配置 ~/.composer/config.jsoncafile 字段,强制 Composer 使用指定证书文件,绕过 PHP 自动探测逻辑。注意路径必须是绝对路径,且文件需存在、权限为 644。

  • Windows 用户请用正斜杠或双反斜杠:composer config -g cafile C:/xampp/htdocs/certs/root.crt
  • 若仍报错,检查是否被 http_proxy 环境变量干扰 —— 某些代理会篡改 TLS SNI,此时需设置 no_proxy="packagist.org,repo.packagist.com"
  • Docker 构建中建议在 Dockerfile 末尾加 RUN composer config -g cafile /etc/ssl/certs/ca-certificates.crt,避免每次构建都重配

真正麻烦的不是加证书,而是证书链不完整 —— 比如只提供了站点证书,没附带中间 CA。用 openssl s_client -connect repo.my-company.com:443 -showcerts 能看到完整链,复制全部 PEM 块(包括 -----BEGIN CERTIFICATE----------END CERTIFICATE-----)合并成一个文件再导入,才真正有效。

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

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

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

162

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

457

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

549

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

337

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

455

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

183

2023.10.30

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1496

2023.07.26

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

37

2026.03.12

热门下载

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

精品课程

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

共137课时 | 13.4万人学习

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号