You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复PHP Curl请求本地127.0.0.1时自签名SSL证书连接错误问题

报错核心原因

本地127.0.0.1:2288服务使用自签证书,你所用的公共CA根证书包仅包含全球可信机构的根证书,不会覆盖你自行生成的自签证书,因此SSL校验不通过。

可行解决方案(均保留SSL校验逻辑,无需关闭校验)

  • 将自签证书加入系统可信CA存储
    把你本地服务的自签根证书(.crt格式)放到/usr/local/share/ca-certificates/目录下,执行命令sudo update-ca-certificates,Ubuntu会自动将该证书加入系统可信根证书列表,后续PHP、curl发起请求时都会信任该证书。
  • 单独指定自签证书作为校验依据
    修改curl代码中CURLOPT_CAINFO的配置值,不再指向公共的cacert.pem,而是改为你本地服务自签证书的绝对路径,示例:
    curl_setopt ($ch, CURLOPT_CAINFO, "/path/to/your/self_signed_cert.crt");
    
    该方式仅信任指定的自签证书,安全性更高,也不需要修改系统配置。
  • 检查自签证书的SAN字段配置
    新版curl和PHP对SSL证书的校验要求服务端证书的*主题备用名称(SAN)*字段必须包含请求的目标地址,你当前请求的是127.0.0.1,生成自签证书时必须将127.0.0.1加入SAN字段,仅在CN(通用名称)字段填写127.0.0.1会导致主机名校验失败。
  • 清理无效PHP配置
    你php.ini中的extension=php_curl.dll是Windows平台的curl扩展配置,Ubuntu环境下不需要该行,建议删除避免出现扩展加载警告。
  • 检查证书文件读取权限
    确保PHP运行用户(通常为www-data)对你配置的证书文件有可读权限,可通过命令chmod 644 /path/to/cert/file赋予全局可读权限,避免curl因无法读取证书文件导致校验失败。

内容的提问来源于stack exchange,提问作者serbe204

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:48:02