Вопрос или проблема
Когда я пытаюсь установить composer на Windows 11 Professional, появляется следующая ошибка:
Скрипт установщика Composer завершился неудачно [код выхода 1].
OpenSSL не удалось с ошибкой 'certificate verify failed'.
Это указывает на проблему с файлом(ами) Удостоверяющего Центра на вашей системе,
которые могут быть устаревшими.
Расположение сертификата [из настройки openssl.cafile ini]:
D:\xampp\apache\bin\curl-ca-bundle.crt
php.ini, используемый вашей командной строкой PHP: D:\xampp\php\php.ini
Вывод скрипта:
Файл "https://getcomposer.org/versions" не может быть загружен:
Операция SSL завершилась неудачно с кодом 1.
Сообщения об ошибках OpenSSL:
ошибка:0A000086:SSL routines::certificate verify failed
Не удалось включить шифрование
Не удалось открыть поток: операция не удалась
Я переустановил XAMPP на своем компьютере.
Затем попытался обновить файл сертификата, используя https://curl.se/docs/caextract.html и переименовал файл curl-ca-bundle.crt. Я также добавил этот сертификат в Диспетчер сертификатов Windows, но это не помогло.
Я также переустановил OpenSSL с помощью choco и скопировал файлы в XAMPP, где находится мой PHP.
Я недостаточно разбираюсь во всем этом, чтобы сделать что-либо еще.
Ответ или решение
Установка Composer на Windows 11 может быть затруднена из-за проблем с проверкой сертификата, как это описано в вашей ситуации. Давайте рассмотрим возможные причины этой проблемы и предложим пошаговое руководство для её решения.
Причины ошибки
Ошибка certificate verify failed
в большинстве случаев связана с тем, что ваша система не может проверить подлинность SSL-сертификата, поскольку файл с сертификатами Центров Сертификации (CA) отсутствует или устарел. В вашем случае это происходит с файлом curl-ca-bundle.crt
, который является частью конфигурации OpenSSL, используемого в вашем XAMPP.
Шаги по решению проблемы
-
Проверка файла CA:
- Убедитесь, что файл
curl-ca-bundle.crt
актуален и корректен. Если вы его заменили на версию с сайта https://curl.se/docs/caextract.html, убедитесь, что этот файл был скачан и заменен правильно.
- Убедитесь, что файл
-
Настройка php.ini:
- Откройте файл
D:\xampp\php\php.ini
и найдите строку, в которой указывается путь к файлу с сертификатами:;openssl.cafile =
Убедитесь, что она раскомментирована и правильный путь к вашему обновленному
curl-ca-bundle.crt
указан:openssl.cafile = "D:\xampp\apache\bin\curl-ca-bundle.crt"
- Откройте файл
-
Обновление XAMPP и OpenSSL:
- Если вы уже обновили XAMPP и OpenSSL, убедитесь, что непосредственно PHP используется последнюю версию OpenSSL. В том случае, если файлы OpenSSL и PHP не синхронизированы, может возникнуть конфликт.
-
Проверка системных переменных:
- Обратите внимание на системные переменные PATH. Убедитесь, что путь до
php.exe
из XAMPP и всех связанных компонентов включён и корректно прописан в переменных PATH вашей системы.
- Обратите внимание на системные переменные PATH. Убедитесь, что путь до
-
Проверка установки Composer:
- Попробуйте установить Composer через командную строку с более подробным логированием:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '906a1f69aa784cfaebf26c0c403c1c6e3a5d6be5e77b864b9a19ba0fbf0d7109bb81f43e3a0fb300ad9b6ad3e88fba1b') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php --install-dir=bin --filename=composer php -r "unlink('composer-setup.php');"
- Использование этих команд поможет выявить конкретные ошибки в процессе загрузки установочного скрипта Composer.
- Попробуйте установить Composer через командную строку с более подробным логированием:
Заключение
Если описанные шаги не помогли в решении проблемы, возможно, стоит обратиться к системному администратору или специалисту по PHP для более детальной диагностики. Также полезно проверить форумы и сообщества пользователей XAMPP для поиска аналогичных случаев и накопленного опыта.