Estoy intentando crear una página web a través de Laravel que pueda cargar archivos (comenzando con imágenes, aunque buscando actualizar a .doc/.pdf en algún momento) a un depósito de AWS S3. He seguido el siguiente tutorial con respecto a tener una página simple para construir:
http://itsolutionstuff.com/post/laravel-5-amazon-s3-file-upload-tutorial-part-1example.html
Desafortunadamente, actualmente estoy enfrentando el siguiente error:
S3Exception en WrappedHttpHandler.php línea 192:
Error al ejecutar "ListObjects" en " https://s3-us-west-2.amazonaws.com/ ..."; Error HTTP de AWS: cURL error 60: problema con el certificado SSL: no se puede obtener el certificado del emisor local (consulte http://curl.haxx.se/libcurl/c/libcurl-errors.html )
Ya descargué el archivo cacert.pem de https://curl.haxx.se/ca/cacert.pem y lo inserté en php.ini, y sigo enfrentándome a este error. Para una mayor minuciosidad, también lo agregué a los archivos php.ini-production y php.ini-development, pero nada cambió. ¿Qué sigo haciendo mal?
(Agregaré que actualmente estoy trabajando en una computadora portátil con Windows 10 y descargué XAMPP, aunque todavía estoy usando "servidor artesanal de php" para configurar el servidor local. No estoy seguro de si esto es un problema o no. )
Yo tuve el mismo problema. El motivo del error es que está trabajando en un servidor local o no verificado. Solo necesita agregar la siguiente línea a "filesystem.php"
'scheme' => 'http' // to disable SSL verification on local developmentSu filesystem.php debería verse así:
's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), 'scheme' => 'http' // to disable SSL verification on local development ],Cuando lo ejecuta en su servidor que tiene verificación SSL, debe comentar la línea 'esquema'.
Eso es todo ¡Disfruta de tu codificación!
¿Ha seguido todo en esta pregunta https://stackoverflow.com/a/38667282/3429655 ?
también una cosa que podría ayudar es agregar un parámetro para no verificar el SSL en su llamada curl para el S3, ya que este es su entorno local, esto podría estar bien en su entorno de desarrollo alojado ya que la mayoría de las empresas de alojamiento clasifican su archivo SSL cert.pem etc.
Establezca CURLOPT_SSL_VERIFYPEER en falso para deshabilitar la verificación de CA.
// connect via SSL, but don't check cert $handle=curl_init('https://s3-us-west-2.amazonaws.com/'); curl_setopt($handle, CURLOPT_VERBOSE, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false); $content = curl_exec($handle); echo $content; // show target page