webentwicklung-frage-antwort-db.com.de

Das Composer-Update schlägt beim Aktualisieren von Packagist fehl

Während der Ausführung von Composer Install/Update habe ich folgende Fehlermeldung von openssl erhalten:

Die Datei " https://packagist.org/packages.json " konnte nicht heruntergeladen werden: SSL-Operation mit Code 1 fehlgeschlagen. OpenSSL-Fehlermeldungen: Fehler: 14090086: SSL-Routinen: SSL3_GET_SERVER_CERTIFICATE: Zertifikatprüfung fehlgeschlagen Fehler beim Aktivieren der Verschlüsselung Fehler beim Öffnen des Streams: Operation fehlgeschlagen https://packagist.org konnte nicht vollständig geladen werden, Paketinformationen wurden aus dem lokalen Cache geladen und sind möglicherweise nicht mehr aktuell

Ich benutze:

  1. PHP 5.6.3 (cli) (gebaut: 17. November 2014 um 15:16:53 Uhr) 
  2. XAMPP-Stack 5.6.3-0
  3. ubuntu 14.04

komponist Diag zeigt:

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: 

[Komponist\Downloader\TransportException]
Die Datei " https://getcomposer.org/version " konnte nicht heruntergeladen werden: SSL-Vorgang mit Code 1 fehlgeschlagen. OpenSSL-Fehlermeldungen:
Fehler: 14090086: SSL-Routinen: SSL3_GET_SERVER_CERTIFICATE: Zertifikatprüfung fehlgeschlagen
Fehler beim Aktivieren der Verschlüsselung
Stream konnte nicht geöffnet werden: Operation fehlgeschlagen 

php -r 'var_dump (openssl_get_cert_locations ());' zeigt an: 

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

Für PHP 5.5.19 ist alles in Ordnung.

27
yuklia

Ich habe eine Lösung dafür gefunden

Ich renne:
FreeBSD 10.1
Apache2.4
PHP 5.6.3

Um die CA-Datei zu finden, habe ich diesen Befehl ausgeführt

> locate cacert.pem

Ergebnis war:
/usr/local/lib/Perl5/site_Perl/5.16/Mozilla/CA/cacert.pem

Öffnen Sie dann die Datei php.ini und
ändere das: 

openssl.cafile =

Zu diesem: 

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

Hinweis: Diese Direktive ist nur in PHP 5.6.x verfügbar

Starten Sie dann Apache neu

26
Manuel Ochoa

Ich habe das Problem mit dem SSL-Fehler behoben, indem ich das SSL-Zertifikat zum Ordner XAMPP-Zertifikate hinzufügte.

// 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

Vergessen Sie nicht, Ihren Apache neu zu starten!

11
guuspor

Ich verwende Mac OS Sierra und als ich versuchte, den Komponisten mit dem Befehl /usr/local/bin/composer self-update zu aktualisieren, wurde der Fehler immer angezeigt:

[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  

Ich habe es mit diesen Schritten behoben:

1) Erstellen Sie die lokale Datenbank mit dem Befehl:

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

2) Suchen Sie die cert-Datei:

locate cacert.pem 

3) Überprüfen Sie den Speicherort der php.ini-Datei:

php --ini

4) Wenn die Datei 'Loaded Configuration File' für php.ini als (none) angezeigt wird, kopieren Sie die Datei /etc/php.ini.default in /etc/php.ini:

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

5) Öffnen Sie die php.ini-Datei und bearbeiten Sie die ;openssl.cafile=-Zeile, indem Sie sie auskommentieren und den Link an den Speicherort der cert-Datei anhängen:

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

Das ist es. Wenn Sie das Composer-Update jetzt ausführen, funktioniert es einwandfrei.

8
Neel

Das Hinzufügen von openssl.cafile zu php.ini hat auch für mich funktioniert. Statt nach der cert-Datei zu suchen, habe ich sie direkt heruntergeladen:

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

und dann nur auf die openssl.cafile -Einstellung darauf hingewiesen.

4
phoenix

Auf dem Mac mit XAMPP:

cd /Applications/XAMPP/xamppfiles/share/openssl

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

Sudo mv cacert.pem cert.pem

Apache stoppen und neu starten 

1
user5030739

Ich habe unter Windows dasselbe Problem gemacht, auch nachdem ich ein gültiges aktuelles Zertifikat hinzugefügt hatte. Ich lasse den Composer hinter dem Proxy laufen. Also muss ich die Umgebungsvariablen http_proxy und https_proxy hinzufügen.

Meine Umgebung: PHP 5.6.33Windows 7 64-Bit Composer-Version 1.6.3 2018-01-31 16:28:17

Ich habe die neuesten Zertifikate CA Bundle heruntergeladen und folgende Pfade in meiner php.ini aktualisiert, die immer noch nicht funktionierten.

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

Dann mache folgende Schritte

1) Öffnen Sie den Chrome-Browser und navigieren Sie zu https://packagist.org/

2) Klicken Sie auf das kleine Secure Lock-Symbol

3) Klicken Sie auf Zertifikate gültig

 enter image description here

4) Öffnen Sie die Registerkarte Zertifikatpfad, und Sie sehen die folgenden Pfadebenen

 enter image description here

5) Das Zertifikat muss für 1 & 2 im Bild markiert werden

6) Um das Zertifikat zu exportieren, klicken Sie auf Zertifikat anzeigen, Registerkarte Details und klicken Sie auf In Datei kopieren

 enter image description here

7) Wählen Sie die BASE 64-Codierung

 enter image description here

8) Klicken Sie auf Weiter und speichern Sie die Datei an einem Ort. Tun Sie dies für Nr. (2), die in Schritt 4 angezeigt wird

 enter image description here

9) Öffnen Sie die .cer-Datei und kopieren Sie den Inhalt an das Ende der .crt-Datei, die Sie in php.ini konfiguriert haben

Dann führen Sie comport install aus - es hat für mich funktioniert

Der Prozess sollte derselbe sein, wenn beim Zugriff auf Sites über Proxy Composer einen ssl-Fehler auslöst.

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

Fügen Sie diese Konfiguration einfach Ihrer composer.json-Datei hinzu.

"config": {
"secure-http": false
}

Hier ist ein vollständiges Beispiel einer funktionierenden Datei composer.json

  "repositories": [{
    "type": "composer",
    "url": "http://packagist.org"
  }],
  "require": {
    "phpmailer/phpmailer": "^6.0"
  },
  "config": {
    "secure-http": false
  }
}
```
0
Leon Hoffmann
composer clearcache

Das hat für mich funktioniert, wenn ich Fehler bekomme:

https://packagist.org konnte nicht vollständig geladen werden, Paketinformationen wurden aus dem lokalen Cache geladen und sind möglicherweise nicht mehr aktuell

0
sim

Für uns schien dieses Problem nur eines unserer privaten Lager zu betreffen. Es hatte zwar etwas mit Zertifikaten oder einer Unternehmensfirewall zu tun, schien jedoch zeitweilig zu sein, so dass wir es nicht bestätigen konnten, bevor wir eine andere Lösung fanden.

In composer.json haben wir die Repository-URL von https in die ssh-Variante geändert und die Option "no-api": true hinzugefügt:

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

Mit dieser Bearbeitung konnten Composer-Aktualisierungs-/Installationsvorgänge erfolgreich abgeschlossen werden.

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: Überprüfen Sie den Speicherort der Zertifikatsdatei im default_cert_file-Schlüssel. Sie finden ihn in openssl_get_cert_locations(). Eine PHP-Opensl-Funktion. Sie können es wie folgt ausführen:

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

Ausgabe in meinem System

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

Sekunde: Download http://curl.haxx.se/ca/cacert.pem :

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

Third: certificate.pem-Datei in default_cert_file-Speicherort kopieren:

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

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

0
Amanuel Nega