disable-tls关闭SSL证书验证,允许不安全的HTTPS连接,适用于内网或调试;secure-http控制是否禁用HTTP协议,默认仅允许HTTPS,防止明文传输。两者分别处理证书校验与协议安全性,生产环境应保持secure-http=true且disable-tls=false以确保安全。

Composer 中的 "disable-tls" 和 "secure-http" 都与 HTTPS 安全传输相关,但它们的作用和使用场景有本质区别。
disable-tls:关闭 TLS 加密校验
这个配置用于完全禁用 TLS(Transport Layer Security)验证。当你设置 "disable-tls": true 时,Composer 将不会验证 SSL 证书的有效性,允许不安全的连接,包括自签名证书或过期证书。
常见用途:
- 在内网或测试环境中使用私有仓库,且无法配置有效证书
- 临时绕过证书问题进行调试
风险提示:这会带来中间人攻击的风险,生产环境绝不推荐使用。
secure-http:禁止不安全的 HTTP 请求
该配置控制是否允许通过非加密的 HTTP 协议访问仓库。默认值为 true,意味着只允许 HTTPS 协议。
如果你添加了一个 HTTP 地址的私有仓库,而 "secure-http" 为 true,Composer 会拒绝请求并报错。
你可以这样设置来允许 HTTP:
{
"config": {
"secure-http": false
}
}
注意:这只影响仓库地址(repositories),不影响主包分发源(如 packagist.org,始终要求 HTTPS)。
关键区别总结
两者虽然都涉及安全传输,但侧重点不同:
- disable-tls 是跳过 HTTPS 的证书验证,仍使用 HTTPS 协议,但不检查安全性
- secure-http 是决定是否允许使用 HTTP 明文协议
举例说明:
- 你访问 https://insecure.example.com,但证书无效 → 需要 disable-tls: true
- 你想访问 http://private-repo.local → 需要 secure-http: false
基本上就这些。合理使用这两个配置,优先保证生产环境全程 HTTPS 并启用证书校验,避免安全漏洞。









