【问题标题】:Running into cURL error with S3 class on local machine but runs fine on host在本地机器上使用 S3 类遇到 cURL 错误,但在主机上运行良好
【发布时间】:2012-06-28 03:32:55
【问题描述】:

我完全迷失了,我不确定是什么导致了这个错误:

致命错误:未捕获的异常 'cURL_Exception' 带有消息 'cURL 资源:资源 id #17; cURL 错误:SSL 证书问题,验证 CA 证书是否正常。详细信息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败(cURL 错误代码 60)。有关错误代码的说明,请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html。在 C:\Inetpub\wwwroot\htdocs\TestSite\src_ama\lib\requestcore\requestcore.class.php:824 堆栈跟踪:#0 C:\Inetpub\wwwroot\htdocs\TestSite\src_ama\services\s3.class.php (903): RequestCore->send_request() #1 C:\Inetpub\wwwroot\htdocs\TestSite\src_ama\services\s3.class.php(1625): AmazonS3->authenticate('mybucket', Array) #2 C :\Inetpub\wwwroot\htdocs\TestSite\class_SysFunc.php(794): AmazonS3->list_objects('mybucket', Array) #3 C:\Inetpub\wwwroot\htdocs\TestSite\sub_dashOverview.php(26): SysFunc- >getCartonSize('1.41c388ab584f1...') #4 {main} 在第 824 行的 C:\Inetpub\wwwroot\htdocs\TestSite\src_ama\lib\requestcore\requestcore.class.php 中抛出

按照我在网站中进行此设置的方式,我有一个用于连接到 S3 的类,它在我的主机帐户上运行良好。

class.php

    if(!class_exists('SysFunc')){
        class SysFunc{
            var $s3;
            var $bucket = 'mybucket';

            function __construct() {
                require_once ('amazon/sdk.class.php');
                $this->s3 = new AmazonS3();
            }

            ...More functions
        }
    }

我想知道这是否与我的 php.ini 文件或 Apache 配置文件有关。

任何想法都会有所帮助。

【问题讨论】:

    标签: php apache curl amazon-s3 localhost


    【解决方案1】:

    打开 Amazon SDK 的配置文件

    这是您填写访问密钥和秘密密钥的地方,它被称为 config.inc.php

    靠近底部的是一个选项“certificate_authority”,默认设置为 false。只要将其设置为 true,就可以了

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,当我更改了上传文件的本地文件夹的权限时,一切都神奇地起作用了。将权限更改为 777。

      【讨论】:

        【解决方案3】:

        您的本地 CA 文件可能已损坏。如果您有权访问实际的 curl 句柄,请尝试以下操作:curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);。

        编辑:在 AWS 中,尝试 $s3->disable_ssl_verification();

        【讨论】:

        • 嘿,大卫,谢谢您的回复。当您说 CA 文件时,您指的是哪些文件?还有我在哪里可以找到 curl 句柄?.. 我在课堂上尝试了 $s3->disable_ssl_verification();,现在我收到了这个警告:禁用 SSL 证书的验证可能会导致中间人攻击。但我相信我可以关闭警告。
        • 系统上的证书颁发机构 (SSL) 文件。是的,该警告消息是准确的,但对于开发系统而言,我怀疑它有那么重要(我可能是错的......)。
        • 好的,我去看看。我关闭了警告,事情似乎运行良好。再次感谢!
        • $s3->disable_ssl_verification(); 为我工作。但我还需要做error_reporting(E_WARNING);
        猜你喜欢
        • 1970-01-01
        • 2020-02-25
        • 1970-01-01
        • 2017-07-22
        • 2020-04-10
        • 2018-03-17
        • 1970-01-01
        • 1970-01-01
        • 2012-07-24
        相关资源
        最近更新 更多