2012-08-11 81 views
12

我试图在PHP亚马逊S3上测试我的本地主机,但继续得到同样的错误:亚马逊S3上WAMP本地主机SSL错误

Fatal error: Uncaught exception 'cURL_Exception' with message 'cURL resource: Resource id #69; cURL error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (cURL error code 60). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.' in C:\wamp\www\mysite\application\libraries\awsphp\lib\requestcore\requestcore.class.php:829 Stack trace: #0 C:\wamp\www\mysite\application\libraries\awsphp\sdk.class.php(1034): RequestCore->send_request() #1 C:\wamp\www\mysite\application\libraries\awsphp\services\sqs.class.php(250): CFRuntime->authenticate('ListQueues', Array) #2 C:\wamp\www\mysite\application\libraries\awsphp\services\sqs.class.php(582): AmazonSQS->authenticate('ListQueues', Array) #3 C:\wamp\www\mysite\application\controllers\uploads.php(33): AmazonSQS->list_queues() #4 [internal function]: Uploads->aw3() #5 C:\wamp\www\mysite\system\core\CodeIgniter.php(359): call_user_func in C:\wamp\www\mysite\application\libraries\awsphp\lib\requestcore\requestcore.class.php on line 829

测试代码:

$sqs = new AmazonSQS(); 
$response = $sqs->list_queues(); 
var_dump($response->isOK()); 

我正确安装将AWS SDK转换为php文件并在本地服务器上启用CURL和SSL。我能做些什么来完成这项工作?我无法在网上找到任何帮助。我正在使用wamp。

+0

我有一个类似的问题http://stackoverflow.com/questions/12253812/aws-s3-batch-upload-from -localhost-php-error但下面的修复程序无效 – 2012-09-04 14:56:19

回答

48
  1. 获取this file并将其保存到您的硬盘。称它为cacert.pem
  2. 在php.ini中配置curl.cainfo以及在步骤1中下载的文件的完整路径。
  3. 重新启动Apache。

我会离开它作为一个练习,为读者找出为什么这个修复它,你需要的所有信息可以在上面的链接中找到。

+2

干杯!据我的理解,我需要一个有效的SSL证书来连接到正确的服务器。我在我的php.ini文件的底部添加了curl.cainfo =“C:/cacert.pem”,并且错误消失了。它也可以添加'curl_setopt($ ch,CURLOPT_SSL_VERIFYHOST,0);'和'curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,0);'但是这并不安全 – CyberJunkie 2012-08-11 22:49:50

+1

最终在数百个'curl_setopt' ($ ch,CURLOPT_SSL_VERIFYPEER,0);'谢谢! – Inoryy 2012-10-23 17:26:23

+5

太棒了。谢谢!对我而言,我在使用AWS软件开发工具包(SQS)的WAMP上遇到了麻烦。阅读完本文后,我将包含在AWS开发工具包(https://github.com/amazonwebservices/aws-sdk-for-php/tree/master/lib/requestcore)中的cacert.pem文件复制到C: \ code \ cacert.pem,然后我把它添加到了我的php.ini的底部:'curl.cainfo = C:\ code \ cacert.pem' – Ryan 2013-01-31 00:01:21

1
  1. 您是否在Windows上运行?
  2. 您是否花时间运行与SDK捆绑在一起的SDK兼容性测试?
+0

是对窗口,是的,我通过了SDK兼容性测试 – CyberJunkie 2012-08-11 21:21:17

0

根据this post你不能与亚马逊AWS在localhost工作..

+4

没有互联网连接。但是如果你有互联网连接,你可以在本地主机上使用AWS。 – Volodymyr 2015-06-05 19:08:05

+1

我在Xampp Windows上。接受的答案完成了这项工作 – 2016-04-19 19:40:53