2012-08-11 9 views
12

Próbuję przetestować w PHP Amazon S3 na moim localhost, ale wciąż otrzymuję ten sam błąd:Amazon S3 o błędzie SSL wamp localhost

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

kod Test:

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

I prawidłowo zainstalowane AWS SDK do plików php i włączono CURL i SSL na moim lokalnym serwerze. Co mogę zrobić, aby to zadziałało? Nie mogę znaleźć żadnej pomocy w Internecie. Używam wampla.

+0

mam podobny problem http://stackoverflow.com/questions/12253812/aws-s3-batch-upload-from -localhost-php-error, ale poprawka poniżej nie zadziałała. –

Odpowiedz

48
  1. Uzyskaj this file i zapisz go na dysku twardym. Nazywają to cacert.pem.
  2. Skonfiguruj curl.cainfo w pliku php.ini, podając pełną ścieżkę do pliku pobranego w kroku 1.
  3. Uruchom ponownie Apache.

Zostawiam to jako ćwiczenie dla czytelnika, aby dowiedzieć się, dlaczegoto rozwiązuje go, wszystkie potrzebne informacje można znaleźć w powyższych linków.

+2

Wiwaty za to! Do mojego zrozumienia potrzebuję prawidłowego certyfikatu SSL, aby połączyć się z właściwym serwerem. Dodałem 'curl.cainfo =" C: /cacert.pem "' na dole mojego pliku php.ini, a błędy zniknęły. Działa również dodając 'curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, 0);' i 'curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, 0);' ale to nie jest bezpieczne – CyberJunkie

+1

Wow wreszcie znalazł właściwe rozwiązanie po setkach bezużytecznych "rozwiązań" takich jak 'curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, 0); 'Dziękujemy! – Inoryy

+5

Awesome. Dziękuję Ci! Dla mnie miałem problemy z WAMP przy użyciu AWS SDK (SQS). Po przeczytaniu tego posta skopiowałem plik cacert.pem, który był dołączony do pakietu AWS SDK (tutaj https://github.com/amazonwebservices/aws-sdk-for-php/tree/master/lib/requestcore) do C: \ code \ cacert.pem, a następnie dodałem to na dole mojego php.ini: curl.cainfo = C: \ code \ cacert.pem' – Ryan

1
  1. Czy używasz systemu Windows?
  2. Czy poświęciłeś czas na przeprowadzenie testu zgodności SDK dołączonego do zestawu SDK?
+0

tak na Windows, tak, zdałem test zgodności SDK – CyberJunkie

0

Według this post nie można pracować z Amazon AWS na localhost ..

+4

bez połączenia z Internetem. Ale możesz pracować z AWS na localhost, jeśli masz połączenie z Internetem. – Volodymyr

+1

Jestem na Xampp Windows. Zaakceptowana odpowiedź spełniła zadanie –