Ошибка SSL Verify Failed при установке Composer в Windows 7 с прокси-сервером

Ошибка SSL Verify Failed при установке Composer в Windows 7 с прокси-сервером

Моя ошибка заключается в том, что всякий раз, когда я пытаюсь установить Composer с помощью графического интерфейса и командной строки, я получаю одну и ту же ошибку с ошибкой проверки SSL и, таким образом, не могу подключиться к HTTPs через свой прокси. Я нахожусь на машине с Windows 7, на которой запущен XAMPP за прокси.

Для начала я провел исследование этой ошибки и перепробовал все решения из других постов, и мне интересно, что я упустил.

Что я пробовал:

  • В настоящее время использую XAMPP для Apache, я скачал и установил последние версии, а также несколько предыдущих версий.
  • Я повторно загрузил curl-ca-bundle.crt и обновил свой \xampp\apache\bin\curl-ca-bundle.crt, чтобы отразить последнюю версию (разница примерно в 20 КБ между той, что поставлялась с XAMPP, и той, которую я скачал).
  • Я вручную загрузил сертификат для getcomposer.org и добавил его в конец моего curl-ca-bundle.crt. (Да, я уверен, что это тот файл, который PHP/Composer использует для установки)
  • Когда я пытаюсь установить это через командную строку, я получаю сообщение об ошибке, в котором говорится, что такой хост неизвестен. Я понял, что эта проблема связана с тем, что URL-адреса HTTP/HTTPS_PROXY не установлены. Я включил их, а затем получаю ту же ошибку, что и через GUI (см. ниже)
  • Затем, когда я зашел на сайт Composer и загрузил .exe для установки, в установщике у меня есть возможность указать прокси (что я и сделал), чтобы избавиться от хоста no sush. После того, как я указал прокси, у меня теперь точно такая же ошибка, как и в командной строке.
  • Отключение SSL/TLS для composer. Но все равно не получается связаться с любым сайтом с https.

Графический интерфейс:

Скрипт установки Composer не был выполнен успешно [код выхода 1].

OpenSSL завершился с ошибкой «certificate verify failed». Это указывает на проблему с файлом(ами) центра сертификации в вашей системе, которые могут быть устаревшими.

Расположение сертификата [из настроек ini-файла openssl.cafile]: \xampp\apache\bin\curl-ca-bundle.crt

Файл php.ini, используемый вашей командной строкой PHP, выглядит следующим образом: C:\xampp\php\php.ini

Вывод скрипта: "https://getcomposer.org/versions" файл не может быть загружен: операция SSL не удалась с кодом 1. Сообщения об ошибках OpenSSL: ошибка: 1416F086: процедуры SSL: tls_process_server_certificate: проверка сертификата не удалась не удалось открыть поток: невозможно подключиться к серверу HTTPS через прокси

Линия CMD:

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>

решение1

У меня Windows 10 с xampp 3.0.12 (php5.3). Я не смог установить composer. Я попробовал следующие шаги, и это сработало.

  1. Загрузите скрипт установщика с сайтаhttps://getcomposer.org/installer.
  2. Сохраните его в файле с именем composer-setup.php.
  3. Откройте composer-setup.phpв вашем любимом редакторе.
  4. Замените все HTTPS на HTTP и сохраните файл.
  5. Выполните следующие 3 шага в командной строке:

    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. Вуаля! Composer успешно установлен, можно запустить: php composer.phar.

Спасибо

решение2

У меня была та же ошибка. Вот как я решил проблему. Я следовал инструкциям вhttps://getcomposer.org/download/, абзац нижеУстановка из командной строки

```
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');"
```

Я заменил строку php composer-setup.phpнаphp composer-setup.php --disable-tls

Нет необходимости редактировать PHP-скрипт.

Я получил эту идею, просмотрев код в composer-setup.php, где я нашел эту опцию. Мне следовало бы запустить его, php composer-setup.php --helpчтобы найти тот же ответ быстрее и без чтения кода.

Связанный контент