Обновление Composer не выполняется при обновлении из packagist

При выполнении установки / обновления composer я получил следующую ошибку от openssl:

«https://packagist.org/packages.json«файл не может быть загружен: операция SSL не выполнена с кодом 1. Сообщения об ошибках OpenSSL:
ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата
Не удалось включить шифрование
не удалось открыть поток: операция не удалась
https://packagist.org не удалось загрузить полностью, информация о пакете была загружена из локального кэша и может быть устаревшей

Я использую:

  1. PHP 5.6.3 (cli) (сборка: 17 ноября 2014 15:16:53)
  2. Стек XAMPP 5.6.3-0
  3. Убунту 14.04

Композитор Diag показывает:

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:
[Композитор \ Downloader \ TransportException] «https://getcomposer.org/version«файл не может быть загружен: операция SSL не выполнена с кодом 1. Сообщения об ошибках OpenSSL:
ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата
Не удалось включить шифрование
не удалось открыть поток: операция не удалась

php -r ‘var_dump (openssl_get_cert_locations ());’ показывает:

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

Для php 5.5.19 все ок.

27

Решение

Я нашел решение для этого

Я бегу:
FreeBSD 10.1
Apache2.4
PHP 5.6.3

Чтобы найти файл CA, я запустил эту команду

> locate cacert.pem

Результат был:
/usr/local/lib/perl5/site_perl/5.16/Mozilla/CA/cacert.pem

Затем откройте файл php.ini и
изменить это:

; Openssl.cafile =

К этому:

openssl.cafile = / USR / местные / Библиотека / perl5 / site_perl / 5,16 / Mozilla / СА / cacert.pem

Примечание: эта директива доступна только на php 5.6.x

Затем перезапустите Apache

26

Другие решения

Я решил проблему с ошибкой SSL, добавив сертификат SSL в папку сертификатов 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

Не забудьте перезапустить свой Apache!

11

Я использую Mac OS Sierra, и когда я пытался обновить композитор с помощью команды /usr/local/bin/composer self-update Я продолжал получать ошибку:

[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

Я исправил это, выполнив следующие действия:

1) Создайте локальную базу данных с помощью команды:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

2) Найдите файл сертификата:

locate cacert.pem

3) Проверьте расположение файла php.ini:

php --ini

4) Если «Загруженный файл конфигурации» для php.ini файл отображается как (none), скопируйте файл /etc/php.ini.default в /etc/php.ini:

sudo cp /etc/php.ini.default /etc/php.ini

5) Откройте php.ini файл и редактировать ;openssl.cafile= Строка, раскомментировав ее и добавив ссылку на местоположение файла сертификата:

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

Это оно. Теперь, когда вы запустите обновление композитора, оно будет работать нормально.

8

Добавление openssl.cafile в php.ini также сработало для меня.
Вместо того, чтобы искать файл сертификата, я скачал его напрямую:

локон http://curl.haxx.se/ca/cacert.pem > cacert.pem

а затем просто указал на него параметр openssl.cafile.

4

На Mac с 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

1

Я столкнулся с той же самой проблемой в Windows даже после добавления действительного последнего загруженного сертификата. Я запускаю composer за прокси, поэтому мне нужно добавить переменные окружения http_proxy и https_proxy.

Моя среда:
PHP 5.6.33
Windows 7 64 бит
Композитор версия 1.6.3 2018-01-31 16:28:17

Я скачал последние сертификаты CA Bundle и обновил следующие пути в моем php.ini до сих пор не работает.

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

Затем сделал следующие шаги

1) Откройте браузер Chrome и перейдите https://packagist.org/

2) Нажмите на маленький значок безопасного замка

3) Нажмите на сертификаты действительные

введите описание изображения здесь

4) Откройте вкладку «Путь к сертификату», и вы увидите следующие уровни пути

введите описание изображения здесь

5) Нужно экспортировать сертификат для обоих 1&2 отмечены на изображении

6) Чтобы экспортировать сертификат, нажмите «Просмотр сертификата», перейдите на вкладку «Сведения» и нажмите «Копировать в файл».

введите описание изображения здесь

7) выбрать кодировку BASE 64

введите описание изображения здесь

8) нажмите Next и сохраните этот файл в определенном месте. Сделайте это для No. (2), показанного в setp 4

введите описание изображения здесь

9) Откройте файл .cer и скопируйте содержимое в конец файла .crt, который вы использовали для настройки в php.ini.

Затем попробуйте запустить comport install — у меня все работает

Процесс должен быть таким же, если вы видите, что composer выдает ошибку ssl при доступе к сайтам через прокси.

1
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

Первый: Проверьте местоположение файла сертификата, который будет в default_cert_file ключ, вы найдете его в openssl_get_cert_locations() Это функция PHP OpenSSL. Вы можете запустить его следующим образом:

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

Вывод в мою систему

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

второй: Скачать http://curl.haxx.se/ca/cacert.pem:

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

В третьихКопировать certificate.pem подать в default_cert_file место нахождения:

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

** ОТ https://github.com/composer/composer/issues/3346 **

0
По вопросам рекламы [email protected]