【问题标题】:AWS HTTP error: cURL error 60: Peer certificate cannot be authenticated with gi certificatesAWS HTTP 错误:cURL 错误 60:对等证书无法使用 gi 证书进行身份验证
【发布时间】:2016-09-20 10:52:03
【问题描述】:
我正在使用这个包
https://github.com/Vinelab/cdn
用于 laravel CDN 资产管理
配置完所有包后,当我执行此命令将资产推送到 s3 存储桶时
php artisan cdn:push
它显示错误
\Exception\S3Exception] 执行“ListObjects”
"https://s3.eu-central1.amazonaws.com/moberries-assets?encode=url";
AWS HTTP 错误:cURL 错误 60:对等证书不能
通过 gi 证书进行身份验证
Http\Exception\RequestException] ror 60: 对等证书不能
使用给定的 CA 证书进行身份验证
Http\Ring\Exception\RingException] ror 60: 对等证书不能
使用给定的 CA 证书进行身份验证
我访问了此问题的后续链接,并将癌症证书包含在项目文件中。
当我运行命令时,它总是显示上述错误
我参考以下链接
enter link description here
如果有 laravel 项目的解决方案,请尽快回复。谢谢
【问题讨论】:
标签:
php
web-services
laravel
web
laravel-5
【解决方案1】:
出现此错误是因为包在连接到服务器时未从其 config/cdn.php 加载 cacert.pen 证书文件,因此服务器总是拒绝请求并给出身份验证错误
解决方案:
在项目的公共目录中添加 cacert.pen 证书文件
并将以下代码添加到 AwsS3Provider.php 包文件中
文件路径是
\xampp\htdocs\yourproject\vendor\vinelab\cdn\src\Vinelab\Cdn\Providers\AwsS3Provider.php 位于区域代码下方的第 161 行
'http' => ['verify' => public_path().'/cacert.pem',],
【解决方案2】:
更新我的项目库后,我遇到了类似的问题。最后,Kashif Ali 的回答给了我一些线索。
但我找不到放置 cacert.pem 文件的位置。
在我将以下设置更新为 config/fileSystem.php 后,它解决了我的问题。
's3' => [
'driver' => 's3',
'key' => env('S3_KEY','your key'),
'secret' => env('S3_SECRET','your secret'),
'region' => env('S3_REGION','your region'),
'bucket' => env('S3_BUCKET',"bucket name"),
'http' => ['verify'=> public_path('cacert.pem')]
],
【解决方案3】:
将 cacert.pem 添加到您的项目公共目录并在此处添加完整路径,例如
'http' => ['verify'=> 'D:myProjectDirectory/cacert.pem')]