Ошибка Composer Curl 60: проблема с сертификатом SSL: невозможно получить сертификат локального эмитентаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ошибка Composer Curl 60: проблема с сертификатом SSL: невозможно получить сертификат локального эмитента

Сообщение Anonymous »

Я пытаюсь заставить композитор работать на удаленном компьютере с Windows, использующем прокси, но я всегда получаю эту ошибку при установке/обновлении композитора:

[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"
}
}
}]
}
Файл «cacert.pem» находится в том же каталоге, что и мой композитор.json, теперь возникает следующая ошибка:

[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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»