web-dev-qa-db-fra.com

La mise à jour du compositeur échoue lors de la mise à jour à partir de packagist

Lors de l'exécution de composer/installer, j'ai le message d'erreur suivant de openssl:

Le fichier " https://packagist.org/packages.json " n'a pas pu être téléchargé: l'opération SSL a échoué avec le code 1. Messages d'erreur OpenSSL: erreur: 14090086: routines SSL: SSL3_GET_SERVER_CERTIFICATE: échec de la vérification du certificat Impossible d'activer la crypto Impossible d'ouvrir le flux: l'opération a échoué https://packagist.org ne peut pas être entièrement chargé, les informations sur le paquet ont été chargées à partir du cache local et peuvent être obsolètes

J'utilise:

  1. PHP 5.6.3 (cli) (construit le 17 novembre 2014 à 15:16:53) 
  2. Pile XAMPP 5.6.3-0
  3. ubuntu 14.04

compositeur diag montre:

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]
Le fichier " https://getcomposer.org/version " n'a pas pu être téléchargé: l'opération SSL a échoué avec le code 1. Messages d'erreur OpenSSL:
erreur: 14090086: routines SSL: SSL3_GET_SERVER_CERTIFICATE: échec de la vérification du certificat
Impossible d'activer le cryptage
Impossible d'ouvrir le flux: l'opération a échoué 

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

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) ""
}

Pour php 5.5.19 tout est ok.

27
yuklia

J'ai trouvé une solution à cela

Je suis entrain de courir:
FreeBSD 10.1
Apache2.4
PHP 5.6.3

Pour trouver le fichier CA, j'ai exécuté cette commande

> locate cacert.pem

Le résultat était:
/usr/local/lib/Perl5/site_Perl/5.16/Mozilla/CA/cacert.pem

Puis ouvrez le fichier php.ini et
change ça: 

; openssl.cafile =

Pour ça: 

openssl.cafile =/usr/local/lib/Perl5/site_Perl/5.16/Mozilla/CA/cacert.pem

Remarque: cette directive est uniquement disponible sur php 5.6.x

Puis redémarrez Apache

26
Manuel Ochoa

J'ai résolu le problème avec l'erreur SSL en ajoutant le certificat SSL au dossier des certificats 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

N'oubliez pas de redémarrer votre Apache!

11
guuspor

J'utilise Mac OS Sierra et lorsque j'essayais de mettre à jour le composeur à l'aide de la commande /usr/local/bin/composer self-update, je rencontrais toujours l'erreur:

[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  

Je l'ai corrigé en suivant ces étapes:

1) Créez la base de données locale en utilisant la commande:

Sudo launchctl load -w /System/Library/LaunchDaemons/com.Apple.locate.plist

2) Localisez le fichier de certificat:

locate cacert.pem 

3) Vérifiez l’emplacement du fichier php.ini:

php --ini

4) Si le "Fichier de configuration chargé" pour le fichier php.ini indique (none), copiez le fichier /etc/php.ini.default dans /etc/php.ini:

Sudo cp /etc/php.ini.default /etc/php.ini

5) Ouvrez le fichier php.ini et éditez la ligne ;openssl.cafile= en le décommentant et en ajoutant le lien à l'emplacement du fichier de certificat:

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

C'est tout. Désormais, lorsque vous exécuterez la mise à jour du compositeur, cela fonctionnera correctement.

8
Neel

Ajouter openssl.cafile à php.ini a également fonctionné pour moi. Au lieu de chercher le fichier cert, je l’ai directement téléchargé:

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

et puis juste pointé paramètre openssl.cafile à elle.

4
phoenix

Sur le Mac avec XAMPP:

cd /Applications/XAMPP/xamppfiles/share/openssl

Sudo curl -O -k http://curl.haxx.se/ca/cacert.pem

Sudo mv cacert.pem cert.pem

Arrêtez et redémarrez Apache 

1
user5030739

J'ai rencontré exactement le même problème sous Windows, même après avoir ajouté le dernier certificat valide téléchargé. J'exécute composer derrière un proxy, il me faut donc ajouter les variables d'environnement http_proxy et https_proxy.

Mon environnement: PHP 5.6.33Windows 7 64 bits Composer version 1.6.3 2018-01-31 16:28:17

J'ai téléchargé les derniers certificats CA Bundle et mis à jour les chemins suivants dans mon php.ini ne fonctionnait toujours pas.

curl.cainfo = C:\Certificates\ca-bundle.crt
openssl.cafile= C:\Certificates\ca-bundle.crt
openssl.capath=C:\Certificates

Puis fait les étapes suivantes

1) Ouvrez le navigateur Chrome et naviguez https://packagist.org/

2) Cliquez sur la petite icône Secure Lock

3) Cliquez sur Certificates Valid

 enter image description here

4) Ouvrez l'onglet Chemin du certificat et vous verrez les niveaux de chemin suivants

 enter image description here

5) Besoin d'exporter le certificat pour les 1 et 2 marqués dans l'image

6) Pour exporter le certificat, cliquez sur afficher certificat, onglet Got to Details et cliquez sur Copier dans un fichier.

 enter image description here

7) choisir l'encodage BASE 64

 enter image description here

8) Cliquez sur Suivant et enregistrez le fichier dans un emplacement. Faites ceci pour le numéro (2) indiqué dans le Étape 4.

 enter image description here

9) Ouvrez le fichier .cer et copiez le contenu à la fin du fichier .crt que vous aviez l'habitude de configurer dans php.ini

Ensuite, essayez de lancer comport install - ça a marché pour moi

Le processus devrait être identique si vous voyez que le compositeur génère une erreur ssl lors de l'accès à des sites via un proxy.

1
Praveen Govind

1.

php -r "print_r(openssl_get_cert_locations());"
array(8) {
  ["default_cert_file"]=>
  string(31) "/usr/local/etc/openssl/cert.pem"
  ...
}

2.vim php.ini

[openssl]
openssl.cafile=/usr/local/etc/openssl/cert.pem
1
shengji yin
composer clearcache

Cela a fonctionné pour moi quand je reçois une erreur:

https://packagist.org ne peut pas être entièrement chargé, les informations sur le paquet ont été chargées à partir du cache local et peuvent être périmées

0
sim

Pour nous, ce problème semblait ne concerner qu'un de nos référentiels privés. Cela avait peut-être quelque chose à voir avec des certs ou un pare-feu d'entreprise, mais comme cela semblait intermittent, nous n'avons pas pu confirmer avant de trouver une solution différente.

Dans composer.json, nous avons modifié l'URL du référentiel de https à la variante ssh et ajouté l'option "no-api": true:

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

Avec cette édition, les opérations de mise à jour/d'installation du composeur ont pu être effectuées avec succès.

0
Everett

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

0
WJN

First: Vérifiez l'emplacement du fichier de certificat qui sera dans la clé default_cert_file, vous le trouverez dans openssl_get_cert_locations(), c'est une fonction php openssl. Vous pouvez l'exécuter comme suit:

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

Sortie dans mon système

    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] => 
    )

Second: Télécharger http://curl.haxx.se/ca/cacert.pem :

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

Third: Copier le fichier certificate.pem à l'emplacement default_cert_file:

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

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

0
Amanuel Nega