AWS SSL安全性错误:[curl] 60:SSL证书问题...:无法获得本地颁发者证书

 被盗不玩了 发布于 2023-01-05 20:43

我想亚马逊的S3文件从运行我的(本地主机)的Windows 8设备连接AppServ 2.5.10(包括Apache 2.2.8,php 5.2.6,mysql 5.0.51bphpMyAdmin 2.10.3)使用Amazon SDK的PHP.

为了与Amazon SDK's命名空间功能兼容,我5.3.28通过下载其压缩文件并解压缩,将php替换为版本.

我的PHP代码可以正常访问S3文件,Amazon EC2但在我的Windows本地主机中失败了.

但是当我运行php srcipt来读取Amazon S3Windows本地主机中的存储桶文件时,我收到了如下SSL错误:

致命错误:未捕获异常'Guzzle\Http\Exception\CurlException',消息'[curl] 60:SSL证书问题:无法获取本地颁发者证书[url] https://images-st.s3.amazonaws.com/us/123977_sale_red_car.png '在C:\ AppServ\www\ecity\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php:342堆栈跟踪:

#0 C:\ AppServ\www\ecity\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php(283):Guzzle\Http\Curl\CurlMulti-> isCurlException(Object(Guzzle\Http\Message)\Request),Object(Guzzle\Http\Curl\CurlHandle),Array)

#1 C:\ AppServ\www\ecity\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php(248):Guzzle\Http\Curl\CurlMulti-> processResponse(Object(Guzzle\Http\Message)\Request),Object(Guzzle\Http\Curl\CurlHandle),Array)

#2 C:\ AppServ\www\ecity\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php(231):Guzzle\Http\Curl\CurlMulti-> processMessages()

#3 C:\ AppServ\www\ecity\vendor\guzzle\guzzle\src\Guzzle\Http\Curl\CurlMulti.php(215):Guzzle\Http\Curl\CurlMulti-> executeHandles()

#4 C:用C \的appserv\WWW\ecity\VEN:\的appserv\WWW\ecity \厂商\ AWS\AWS-SDK-PHP中\ SRC\AWS \共同\客户\ AbstractClient.php上线288

我从http://curl.haxx.se/ca/cacert.pem下载证书,并在php.ini中定义如下:

curl.cainfo = "C:\AppServ\cacert.pem"

但我仍然有同样的错误.似乎php不尊重curl.cainfo定义的php.ini.

我的php版本是5.3.28根据的localhost/phpinfo.php.

我还检查cainfo参数是否正确C:\AppServ\cacert.pem 使用

echo ini_get( "curl.cainfo" ) ; 

在PHP脚本中.

PHP版本高于5.3应支持curl.cainfophp.ini.

在Windows的命令行中,我检查卷曲行为,它似乎工作正常.

C:\Users\Jordan>curl  https://s3-us-west-2.amazonaws.com/images-st/aaa.txt
   curl: (60) SSL certificate problem: unable to get local issuer certificate
   ......

C:\Users\Jordan>curl --cacert C:\AppServ\cacert.crt  https://s3-us-west-2.amazonaws.com/images-st/aaa.txt
  This is aaa.txt file.
  Stored in Amazon S3 bucket.

是因为我在Windows中使用的Apache与5.3.28我从http://windows.php.net/download/ VC9 x86 Thread Safe(2014年6月11日01:09:56)zip版本下载的php zip文件不匹配.

在我的apache的httpd-ssl.conf文件中,即使我在Windows 8中使用本地主机,我也有以下设置.



DocumentRoot "C:/AppServ/www"
ServerName localhost:443
ServerAdmin webmaster@localhost.com
ErrorLog "C:/AppServ/Apache2.2/logs/error.log"
TransferLog "C:/AppServ/Apache2.2/logs/access.log"

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "C:/AppServ/Apache2.2/conf/mydomain.cert"
SSLCertificateKeyFile "C:/AppServ/Apache2.2/conf/mydomain.key"


    SSLOptions +StdEnvVars


    SSLOptions +StdEnvVars


BrowserMatch ".*MSIE.*" \
     nokeepalive ssl-unclean-shutdown \
     downgrade-1.0 force-response-1.0

CustomLog "C:/AppServ/Apache2.2/logs/ssl_request.log" \
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

                                  

现在我想知道是什么问题以及如何连接到Amazon S3存储桶文件和RDS数据库而不产生这些curl不能从我的Windows 8本地主机获得本地颁发者证书问题.

有什么建议?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有