org manager composer php openssl xampp composer-php php-5.6

php - manager - La actualización del compositor falla al actualizar desde packagist



http packagist org/> (9)

Al ejecutar la instalación / actualización del compositor, recibí el siguiente error de openssl:

El archivo " https://packagist.org/packages.json " no se pudo descargar: la operación SSL falló con el código 1. OpenSSL Mensajes de error: error: 14090086: Rutinas de SSL: SSL3_GET_SERVER_CERTIFICATE: error en la verificación del certificado No se pudo abrir el cript secuencia: la operación falló https://packagist.org no se pudo cargar completamente, la información del paquete se cargó desde el caché local y puede estar desactualizada

Estoy usando:

  1. PHP 5.6.3 (cli) (construido: 17 de noviembre de 2014 15:16:53)
  2. Pila de XAMPP 5.6.3-0
  3. ubuntu 14.04

compositor diag muestra:

Checking composer.json: OK Checking platform settings: OK Checking git settings: OK Checking http connectivity: FAIL [Composer/Downloader/TransportException] The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Failed to enable crypto failed to open stream: operation failed Checking disk free space: OK Checking composer version:

[Composer / Downloader / TransportException]
El archivo " https://getcomposer.org/version " no se pudo descargar: la operación SSL falló con el código 1. Mensajes de error de OpenSSL:
error: 14090086: Rutinas SSL: SSL3_GET_SERVER_CERTIFICATE: error en la verificación del certificado
Error al habilitar criptografía
no se pudo abrir la secuencia: la operación falló

php -r ''var_dump (openssl_get_cert_locations ());'' muestra:

array(8) { ["default_cert_file"]=> string(33) "/opt/lampp/share/openssl/cert.pem" ["default_cert_file_env"]=> string(13) "SSL_CERT_FILE" ["default_cert_dir"]=> string(30) "/opt/lampp/share/openssl/certs" ["default_cert_dir_env"]=> string(12) "SSL_CERT_DIR" ["default_private_dir"]=> string(32) "/opt/lampp/share/openssl/private" ["default_default_cert_area"]=> string(24) "/opt/lampp/share/openssl" ["ini_cafile"]=> string(0) "" ["ini_capath"]=> string(0) "" }

Para PHP 5.5.19 todo está bien.


En el mac con XAMPP:

cd /Applications/XAMPP/xamppfiles/share/openssl sudo curl -O -k http://curl.haxx.se/ca/cacert.pem sudo mv cacert.pem cert.pem

Detener y reiniciar Apache


Encontré una solución a esto

Estoy corriendo:
FreeBSD 10.1
Apache2.4
PHP 5.6.3

Para encontrar el archivo CA ejecuté este comando

> locate cacert.pem

El resultado fue:
/usr/local/lib/perl5/site_perl/5.16/Mozilla/CA/cacert.pem

Luego abre el archivo php.ini y
cambia esto:

; openssl.cafile =

A esto:

openssl.cafile = / usr / local / lib / perl5 / site_perl / 5.16 / Mozilla / CA / cacert.pem

Nota: esta directiva solo está disponible en php 5.6.x

Luego reinicie Apache


Estoy usando Mac OS Sierra y cuando intentaba actualizar el compositor con el comando /usr/local/bin/composer self-update autoactualizaba el error:

[Composer/Downloader/TransportException] The "https://getcomposer.org/version" file could not be downloaded: SSL operation failed with co de 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Failed to enable crypto failed to open stream: operation failed

Lo arreglé siguiendo estos pasos:

1) Crea la base de datos local usando el comando:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

2) Localice el archivo cert:

locate cacert.pem

3) Compruebe la ubicación del archivo php.ini:

php --ini

4) Si el ''Archivo de configuración cargado'' para el archivo php.ini se muestra como (none) , copie el archivo /etc/php.ini.default en /etc/php.ini :

sudo cp /etc/php.ini.default /etc/php.ini

5) Abra el archivo php.ini y edite la línea ;openssl.cafile= comentarios y agregando el enlace a la ubicación del archivo cert:

openssl.cafile=/Users/me/.composer/cacert.pem

Eso es. Ahora, cuando ejecute la actualización del compositor, funcionará bien.


La adición de openssl.cafile a php.ini también funcionó para mí. En lugar de buscar el archivo cert, lo descargué directamente:

curl http://curl.haxx.se/ca/cacert.pem > cacert.pem

y luego solo apunté a openssl.cafile configurándolo.


Para nosotros, este problema solo pareció afectar a uno de nuestros repositorios privados. Puede haber tenido algo que ver con certificados o un firewall corporativo, pero parecía intermitente, por lo que no pudimos confirmar antes de encontrar una solución diferente.

Dentro de composer.json, cambiamos la URL del repositorio de https a la variante ssh y agregamos la opción "no-api": true :

"repositories": [ { "type": "vcs", "url": "[email protected]:our-user/our-repo.git", "no-api": true } ]

Con esa edición, las operaciones de actualización / instalación del compositor pudieron completarse con éxito.


Resolví el problema con el error SSL al agregar el certificado SSL a la carpeta de certificados XAMPP.

// navigate to a directory to save the certificate cd /Downloads // download a certificate wget http://curl.haxx.se/ca/cacert.pem // rename and move the file to the Xampp certificates folder mv cacert.pem /Applications/XAMPP/xamppfiles/share/openssl/cert.pem

¡No olvides reiniciar tu apache!


Primero : Verifique la ubicación del archivo de certificado que estará en la clave default_cert_file , la encontrará en openssl_get_cert_locations() es una función de apertura de PHP. Puedes ejecutarlo de la siguiente manera:

$ php -r "print_r(openssl_get_cert_locations());"

Salida en mi sistema

Array ( [default_cert_file] => /opt/lampp/share/openssl/cert.pem [default_cert_file_env] => SSL_CERT_FILE [default_cert_dir] => /opt/lampp/share/openssl/certs [default_cert_dir_env] => SSL_CERT_DIR [default_private_dir] => /opt/lampp/share/openssl/private [default_default_cert_area] => /opt/lampp/share/openssl [ini_cafile] => [ini_capath] => )

Segundo : Descargue http://curl.haxx.se/ca/cacert.pem :

$ wget http://curl.haxx.se/ca/cacert.pem

Tercero : copie el archivo certificate.pem en la ubicación default_cert_file :

$ sudo mv cacert.pem /opt/lampp/share/openssl/cert.pem

** DESDE https://github.com/composer/composer/issues/3346 **


locate cacert.pem vi /usr/local/lib/php.ini #add this openssl.cafile=/usr/local/share/perl5/Mozilla/CA/cacert.pem # press esc then type :wq #enter curl -sS https://getcomposer.org/installer | php -- —version=1.0.0-alpha10 mv composer.phar /usr/local/bin/composer alias composer=''/usr/local/bin/composer'' composer -V php /usr/local/bin/composer global self-update cd .composer/ composer init


composer clearcache

Esto me funcionó cuando me sale un error:

https://packagist.org no se pudo cargar completamente, la información del paquete se cargó desde el caché local y puede estar desactualizada