2012-08-11 50 views
12

Tôi đang cố gắng để kiểm tra trong PHP Amazon S3 trên localhost của tôi, nhưng vẫn gặp lỗi tương tự:Amazon S3 trên wamp localhost lỗi 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

mã kiểm tra:

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

tôi cài đặt đúng AWS SDK cho các tệp php và bật CURL và SSL trên máy chủ cục bộ của tôi. Tôi có thể làm gì để thực hiện công việc này? Tôi không thể tìm thấy bất kỳ trợ giúp trực tuyến nào. Tôi đang sử dụng wamp.

+0

tôi có một vấn đề tương tự http://stackoverflow.com/questions/12253812/aws-s3-batch-upload-from -localhost-php-lỗi nhưng sửa chữa bên dưới không hoạt động –

Trả lời

48
  1. Nhận this file và lưu vào ổ cứng của bạn. Gọi nó là cacert.pem.
  2. Định cấu hình curl.cainfo bằng php.ini với đường dẫn đầy đủ đến tệp được tải xuống ở bước 1.
  3. Khởi động lại Apache.

tôi sẽ để nó như một bài tập cho người đọc để tìm hiểu lý do tại sao này sửa chữa nó, tất cả các thông tin cần thiết có thể được tìm thấy trong các liên kết ở trên.

+2

Chúc mừng cho điều đó! Theo hiểu biết của tôi, tôi cần chứng chỉ SSL hợp lệ để kết nối với máy chủ phù hợp. Tôi đã thêm 'curl.cainfo =" C: /cacert.pem "' vào cuối tệp php.ini của tôi và các lỗi đã biến mất. Nó cũng làm việc thêm 'curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, 0);' và 'curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, 0);' nhưng nó không an toàn – CyberJunkie

+1

wow cuối cùng đã tìm ra một giải pháp thích hợp sau hàng trăm giải pháp vô dụng như 'curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, 0); 'Cảm ơn bạn! – Inoryy

+5

Tuyệt vời. Cảm ơn bạn! Đối với tôi, tôi gặp sự cố về WAMP khi sử dụng AWS SDK (SQS). Sau khi đọc bài đăng này, tôi đã sao chép tệp cacert.pem đã được bao gồm trong SDK AWS (tại đây https://github.com/amazonwebservices/aws-sdk-for-php/tree/master/lib/requestcore) vào C: \ code \ cacert.pem, và sau đó tôi thêm phần này vào cuối tệp php.ini của mình: 'curl.cainfo = C: \ code \ cacert.pem' – Ryan

1
  1. Bạn có đang chạy trên Windows không?
  2. Bạn đã dành thời gian chạy Kiểm tra tương thích SDK đi kèm với SDK chưa?
+0

có trên windows, vâng tôi đã vượt qua bài kiểm tra khả năng tương thích SDK – CyberJunkie

0

Theo this post bạn không thể làm việc với Amazon AWS trên localhost ..

+4

mà không cần kết nối internet. Nhưng bạn có thể làm việc với AWS trên localhost nếu bạn có kết nối internet. – Volodymyr

+1

Tôi đang sử dụng Xampp Windows. Câu trả lời được chấp nhận đã thực hiện công việc –