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:
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.
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
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!
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.
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.
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
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
4) Ouvrez l'onglet Chemin du certificat et vous verrez les niveaux de chemin suivants
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.
7) choisir l'encodage BASE 64
8) Cliquez sur Suivant et enregistrez le fichier dans un emplacement. Faites ceci pour le numéro (2) indiqué dans le Étape 4.
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.
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
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
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.
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
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