[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"), а также сохранил сертификат -file там
Потом я нашел пост, в котором устанавливался репозиторий в композиторе .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