答案是通过配置 secure-http 解决 Composer 连接 HTTP 源的限制。具体做法包括在 composer.json 中为特定仓库设置 secure-http: false,或使用命令行临时关闭验证,但需注意仅在可信环境中使用,避免生产系统暴露安全风险。

当你在使用 Composer 时遇到提示 "Your configuration does not allow connection to http://xxx. Add 'secure-http' => false for this repository in the config section.",说明 Composer 拒绝连接非 HTTPS 的包源,这是出于安全考虑的默认行为。但如果你确实需要使用 HTTP 源(例如私有仓库或本地镜像),可以通过调整配置来解决。
理解 secure-http 配置
Composer 默认要求所有包仓库使用 HTTPS 协议,防止中间人攻击和数据篡改。当配置中未显式允许某个 HTTP 源时,就会报错。
要解决这个问题,你需要在 Composer 配置中为特定仓库明确设置 secure-http: false。
解决方案:修改 composer.json 或全局 config
根据你的使用场景,可以选择以下方式之一:
● 在项目根目录的 composer.json 中添加仓库配置,并关闭 secure-http 检查:{
"repositories": [
{
"type": "composer",
"url": "http://your-private-repo.example.com",
"options": {
"ssl": {
"verify_peer": false,
"verify_peer_name": false
}
}
}
],
"config": {
"secure-http": false
}
}
● 如果你只想对某个特定仓库禁用 HTTPS 验证,而不是整个项目,可以这样写:
{
"repositories": [
{
"type": "composer",
"url": "http://your-private-repo.example.com",
"secure-http": false
}
]
}
● 使用命令行临时添加(推荐用于开发环境):
composer config secure-http false
这条命令会修改当前项目的 composer.json,等同于手动添加 "config": { "secure-http": false }。
注意事项与安全建议
虽然关闭 secure-http 能解决问题,但也带来安全风险:
● 不要在线上生产环境使用 HTTP 源 ● 尽量将私有仓库升级为 HTTPS ● 若必须使用 HTTP,确保网络环境可信(如内网) ● 避免在公共项目中提交 secure-http: false基本上就这些。问题出在协议安全策略,解法就是合理配置允许项,关键是分清使用场景,不盲目关闭保护。










