Fehler „SSL-Überprüfung fehlgeschlagen“ beim Installieren von Composer unter Windows 7 mit Proxy

Fehler „SSL-Überprüfung fehlgeschlagen“ beim Installieren von Composer unter Windows 7 mit Proxy

Mein Fehler ist, dass ich jedes Mal, wenn ich versuche, Composer sowohl über die GUI als auch über die Befehlszeile zu installieren, denselben Fehler erhalte, bei dem die SSL-Verifizierung fehlschlägt und ich daher über meinen Proxy keine Verbindung zu HTTPs herstellen kann. Ich verwende einen Windows 7-Rechner, auf dem XAMPP hinter einem Proxy läuft.

Zunächst habe ich diesen Fehler untersucht und alle Lösungen in anderen Beiträgen ausprobiert und frage mich, was ich übersehen habe.

Die Dinge, die ich versucht habe:

  • Ich verwende derzeit XAMPP für Apache und habe die neuesten Versionen sowie einige frühere Versionen heruntergeladen und installiert
  • Ich habe curl-ca-bundle.crt erneut heruntergeladen und mein \xampp\apache\bin\curl-ca-bundle.crt aktualisiert, um die neueste Version widerzuspiegeln (~ungefähr 20 KB Unterschied zwischen der mit XAMPP gelieferten Version und der, die ich heruntergeladen habe).
  • Ich habe das Zertifikat für getcomposer.org manuell heruntergeladen und an das Ende meiner curl-ca-bundle.crt angehängt. (Ja, ich bin sicher, dass dies die Datei ist, die PHP/Composer zur Installation verwendet.)
  • Wenn ich versuche, dies über die Befehlszeile zu installieren, erhalte ich die Fehlermeldung, dass kein solcher Host bekannt ist. Ich habe herausgefunden, dass dieses Problem darauf zurückzuführen ist, dass HTTP/HTTPS_PROXY-URLs nicht festgelegt sind. Ich habe sie aktiviert und erhalte dann denselben Fehler wie über die GUI (siehe unten).
  • Ich habe dann über die Composer-Site die zu installierende EXE-Datei heruntergeladen. Im Installationsprogramm habe ich die Möglichkeit, einen Proxy anzugeben (was ich getan habe), um den „No-Sush-Host“ loszuwerden. Nachdem ich den Proxy angegeben habe, habe ich jetzt genau denselben Fehler wie in der Befehlszeile.
  • Deaktivieren von SSL/TLS für Composer. Aber es schlägt immer noch fehl, wenn versucht wird, eine Website über https zu kontaktieren.

Benutzeroberfläche (GUI):

Das Composer-Installationsskript war nicht erfolgreich [Exitcode 1].

OpenSSL ist mit dem Fehler „Zertifikatsüberprüfung fehlgeschlagen“ fehlgeschlagen. Dies weist auf ein Problem mit den Dateien der Zertifizierungsstelle auf Ihrem System hin, die möglicherweise veraltet sind.

Zertifikatspeicherort [aus den INI-Einstellungen von openssl.cafile]: \xampp\apache\bin\curl-ca-bundle.crt

Die von Ihrem PHP-Befehlszeilenprogramm verwendete php.ini lautet: C:\xampp\php\php.ini

Skriptausgabe: Die "https://getcomposer.org/versions" Datei konnte nicht heruntergeladen werden: SSL-Vorgang ist mit Code 1 fehlgeschlagen. OpenSSL-Fehlermeldungen: Fehler:1416F086:SSL-Routinen:tls_process_server_certificate:Zertifikatsüberprüfung fehlgeschlagen. Stream konnte nicht geöffnet werden: Verbindung zum HTTPS-Server über Proxy nicht möglich

CMD-Zeile:

C:\Users\S0077500\Desktop\Laravel\Attempt 7>php composer.phar diagnose
You are running Composer with SSL/TLS protection disabled.
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: WARNING
[Composer\Downloader\TransportException] The "https://repo.packagist.org/package
s.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL
Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify fa
iled
failed to open stream: Cannot connect to HTTPS server through proxy
Composer is configured to disable SSL/TLS protection. This will leave remote HTT
PS requests vulnerable to Man-In-The-Middle attacks.
Checking HTTP proxy: FAIL
[Composer\Downloader\TransportException] The "https://repo.packagist.org/package
s.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL
Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify fa
iled
failed to open stream: Cannot connect to HTTPS server through proxy
Checking HTTP proxy support for request_fulluri: OK
Checking HTTPS proxy support for request_fulluri: Unable to assess the situation
, maybe github is down (The "https://api.github.com/repos/Seldaek/jsonlint/zipba
ll/1.0.0" file could not be downloaded: SSL operation failed with code 1. OpenSS
L Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify fa
iled
failed to open stream: Cannot connect to HTTPS server through proxy)
Checking github.com rate limit: FAIL
[Composer\Downloader\TransportException] The "https://api.github.com/rate_limit"
 file could not be downloaded: SSL operation failed with code 1. OpenSSL Error m
essages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify fa
iled
failed to open stream: Cannot connect to HTTPS server through proxy
Checking disk free space: OK
Checking pubkeys: FAIL
Missing pubkey for tags verification
Missing pubkey for dev verification
Run composer self-update --update-keys to set them up
Checking composer version:

  [Composer\Downloader\TransportException]
  The "https://getcomposer.org/versions" file could not be downloaded: SSL op
  eration failed with code 1. OpenSSL Error messages:
  error:1416F086:SSL routines:tls_process_server_certificate:certificate veri
  fy failed
  failed to open stream: Cannot connect to HTTPS server through proxy


diagnose


C:\Users\S0077500\Desktop\Laravel\Attempt 7>

Antwort1

Ich habe Windows 10 mit xampp 3.0.12 (php5.3). Ich konnte Composer nicht installieren. Ich habe die folgenden Schritte ausprobiert und es hat bei mir funktioniert.

  1. Laden Sie das Installationsskript herunter vonhttps://getcomposer.org/installer.
  2. Speichern Sie es in einer Datei mit dem Namen composer-setup.php.
  3. Öffnen Sie es composer-setup.phpin Ihrem bevorzugten Editor.
  4. Ersetzen Sie alle HTTPS durch HTTP und speichern Sie die Datei.
  5. Führen Sie die folgenden 3 Schritte in der Eingabeaufforderung aus:

    php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
    
    php composer-setup.php
    
    php -r "unlink('composer-setup.php');"
    
  6. Voila! Composer wurde erfolgreich installiert. Sie können Folgendes ausführen: php composer.phar.

Danke

Antwort2

Ich hatte den gleichen Fehler. So habe ich das Problem gelöst. Ich habe die Anweisungen in befolgthttps://getcomposer.org/download/, Absatz untenBefehlszeileninstallation

```
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
```

Ich habe die Zeile ersetzt php composer-setup.phpdurchphp composer-setup.php --disable-tls

Das PHP-Skript muss nicht bearbeitet werden.

Ich kam auf die Idee, als ich den Code in composer-setup.php überprüfte, wo ich die Option fand. Ich hätte php composer-setup.php --helpschneller und ohne Codelesen die gleiche Antwort finden sollen.

verwandte Informationen