[Composer\Downloader\TransportException] ошибка 60 при
загрузке https://flex.symfony.com/versions.json: сертификат SSL
проблема: невозможно получить сертификат локального эмитента
Это мой композитор.bat:
Код: Выделить всё
@echo OFF
:: in case DelayedExpansion is on and a path contains !
setlocal DISABLEDELAYEDEXPANSION
set HTTP_PROXY=
php "%~dp0composer.phar" %*
[Composer\Downloader\TransportException] ошибка Curl 28 при
загрузке https://flex.symfony.com/versions.json: время операции истекло
через 10000 миллисекунд с 0 из Получено 0 байт
Код: Выделить всё
composer diagКод: Выделить всё
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking HTTP proxy: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952
OK
Checking composer version: OK
Composer version: 2.0.9
PHP version: 7.4.7
PHP binary path: C:\Program Files\PHP\current\php.exe
OpenSSL version: OpenSSL 1.1.1g 21 Apr 2020
cURL version: 7.69.1 libz 1.2.11 ssl OpenSSL/1.1.1g
zip: extension present, unzip not available
- Загрузил cacert.pem с http://curl.haxx.se/ca/cacert.pem или https://curl.se/docs/caextract.html (без копирования и вставки, поскольку некоторые говорят, что редактирование файла приведет к его повреждению - однако это должно произойти)
- сохранил файл локально
- активировал openssl в php.ini
- отредактировал php.ini и добавил путь к файлу сертификата для «curl.cainfo», а также «openssl.cafile» (согласно некоторым сообщениям, которые имеют значение, поэтому я попробовал оба), использовал полный путь и кавычки, например: Curl.cainfo="C:\Program Files\PHP\cacert.pem"
- переместил pem-файл в разные каталоги, чтобы убедиться, что никакие разрешения Windows не сделают его недоступным (я также установил, что файл и его каталог доступны всем пользователям, просто чтобы убедиться)
- использовал php -r "print_r(openssl_get_cert_locations());", чтобы узнать местоположение файла сертификата по умолчанию (это "C:\Program Files\Common Files\SSL"), также сохранил файл сертификата там
Затем я нашел сообщение, в котором установлен репозиторий в композиторе.json и явно установил файл сертификата для этого репозитория, поэтому я также попробовал и добавил это в свой композитор.json:
Код: Выделить всё
{
"repositories": [{
"type": "composer",
"url": "https://flex.symfony.com",
"options" : {
"ssl" : {
"cafile" : "cacert.pem"
}
}
}]
}
[Composer\Downloader\TransportException] Не удалось загрузить
файл «https://flex.symfony.com/packages.json»
(HTTP/2 404 )
что не так уж удивительно, поскольку попытка доступа к «https://flex.symfony.com/packages.json» через браузер также выдает мне ошибку 404. (Не знаю, имеет ли значение то, что внезапно «packages.json» не удалось загрузить, пока жаловался на ошибку сертификата) "versions.json", понятия не имею, что загружается первым, и является ли эта ошибка "хорошим" знаком.)
Этот путь методом проб и ошибок продолжается уже несколько дней, у меня нет идей, поэтому любая помощь приветствуется!
Подробнее здесь: https://stackoverflow.com/questions/662 ... ssuer-cert
Мобильная версия