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

确认Laravel 5.1与AWS S3 Bucket连接强制使用TLS 1.2

Laravel 5.1 + PHP 5.6环境下S3 TLS 1.2配置验证问题

一、你的配置是否生效?

你在filesystems.php中添加的TLS 1.2配置在当前环境下是生效的,理由如下:

  • PHP 5.6原生支持TLS 1.2,且CURL_SSLVERSION_TLSv1_2常量在PHP 5.5及以上版本已存在,PHP 5.6可正常识别该常量。
  • AWS SDK for PHP 3.x版本支持通过options.http.curl传递curl参数,Laravel 5.1的S3驱动会将这些配置传递给底层AWS SDK客户端,强制连接使用TLS 1.2。

注意:你修改的Nginx配置仅控制用户访问Web服务时的TLS版本,和Laravel后端连接S3的TLS版本无关联,后端连接的TLS版本完全由filesystems.php中的配置决定。

二、如何验证连接使用了TLS 1.2?

提供三种可靠验证方式:

1. 启用AWS SDK调试日志

在filesystems.php的S3配置中添加日志参数,记录请求细节:

's3' => [
    'driver' => 's3',
    'key' => 'myKey',
    'secret' => 'MySecret',
    'region' => 'eu-central-1',
    'bucket' => 'myBucketName',
    'options' => [
        'http' => [
            'verify' => true,
            'curl' => [
                CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2,
                CURLOPT_VERBOSE => true,
                CURLOPT_STDERR => fopen(storage_path('logs/s3_debug.log'), 'w'),
            ],
        ],
    ],
],

执行文件上传操作后,打开storage/logs/s3_debug.log,查找包含SSL connection using TLSv1.2的日志条目,即可确认TLS版本。

2. 服务器端curl命令测试

在服务器上执行以下curl命令(替换为你的桶名及测试文件路径),查看输出中的SSL协议信息:

curl -v https://your-bucket-name.s3.eu-central-1.amazonaws.com/OmegaCloud/test-file --tlsv1.2

若返回内容中出现SSL connection using TLSv1.2,则说明连接使用了目标TLS版本。

3. 查看AWS CloudTrail日志

登录AWS控制台,进入CloudTrail服务,筛选目标S3存储桶的访问事件,查看事件的TlsDetails字段,该字段会明确显示请求使用的TLS版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 21:27:08