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

本地Laravel应用配置AWS S3上传文件时遇SSL证书错误求助

解决Laravel本地连接AWS S3时的SSL证书错误(cURL 60)

嘿,这个SSL证书问题我之前在本地跑Laravel连S3的时候也踩过坑,给你几个实用的解决办法,按优先级来:

方法1:更新本地PHP的CA证书(推荐,适合长期本地开发)

这个是最根本的解决方式,错误本质是本地cURL无法验证S3服务器的SSL证书,核心原因是本地缺少可信的根CA证书:

  • 下载最新的根CA证书集合(从官方可信渠道获取,保存为cacert.pem文件)
  • 找到你本地PHP的php.ini配置文件(可以通过终端执行php --ini命令定位路径)
  • 在php.ini里找到并修改以下两个配置项,指向你刚才保存的cacert.pem的绝对路径:
curl.cainfo = "/path/to/your/cacert.pem"
openssl.cafile = "/path/to/your/cacert.pem"
  • 重启你的本地服务器(比如XAMPP、WAMP、Laravel Valet等),然后重新测试上传。

方法2:本地开发临时禁用SSL验证(仅测试用,禁止生产环境使用)

如果只是临时测试不想折腾证书配置,可以临时关闭SSL验证,但注意:这个方法只适合本地开发测试,生产环境绝对不能启用,会带来严重的安全风险!

  • 打开Laravel项目的config/filesystems.php文件,找到s3磁盘的配置数组,添加http配置项:
's3' => [
    'driver' => 's3',
    'key' => env('AWS_ACCESS_KEY_ID'),
    'secret' => env('AWS_SECRET_ACCESS_KEY'),
    'region' => env('AWS_DEFAULT_REGION'),
    'bucket' => env('AWS_BUCKET'),
    'url' => env('AWS_URL'),
    'http' => [
        'verify' => false,
    ],
],
  • 执行命令清除配置缓存:php artisan config:clear
  • 重新测试上传功能。

方法3:检查并升级本地PHP和cURL版本

有些旧版本的PHP或cURL对AWS S3的新SSL证书支持不佳,如果你用的是比较老的本地环境,可以尝试升级到PHP 7.4+(或稳定的最新版本),同时确保cURL版本是最新的稳定版。

额外小建议

你的上传代码可以优化一下,不用先创建本地文件再上传,直接传内容更高效:

$data = 'Test data to see if this works!';
$storagePath = Storage::disk('s3')->put("uploads/file.txt", $data, 'public');

内容的提问来源于stack exchange,提问作者Charl van Staden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:33:48