Curl error 60 while downloading

Curl error 60 while downloading

Когда я использую простые команды (установка / обновление) для проектов на основе Composer или команду “диагностика” composer diagnose -vvv, я получаю ошибку:

“ошибка curl 60 при загрузкеhttps://repo.packagist.org/packages.json : Проблема с сертификатом SSL: не удается получить сертификат локального эмитента”

Я уже пытался:

Обновите до последней версии Ubuntu (22.04) и, в частности, используйте:

sudo apt install ca-certificates –reinstall

sudo update-ca-certificates -f

Исправлены несовпадающие пути, которые, казалось, были исходной проблемой

sudo mkdir -p /etc/pki/tls/certs

sudo ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-certificates.crt

И на самом деле диагностика говорит, как и ожидалось:

Проверенный файл CA / etc /pki / tls /certs/ca-bundle.crt: действителен

Повторно запустите программу установки Composer

Еще немного информации, которая может быть полезной:

Composer version: 2.2.6

PHP version: 8.1.2

PHP binary path: /usr/bin/php8.1

OpenSSL version: OpenSSL 3.0.2 15 Mar 2022

cURL version: 7.81.0 libz 1.2.11 ssl OpenSSL/3.0.2

Решение

Наконец-то удалось решить ее, вручную заменив файл ca-bundle.crt, поняв, что даже простая команда curl / wget CLI (за пределами PHP / Composer) вернула ту же ошибку (это причина –no-check-certificate ниже):

sudo mv /etc/ssl/certs/ca-bundle.crt /etc/ssl/certs/ca-bundle.crt.backup

sudo wget -O /etc/ssl/ca-bundle.crt https://curl.se/ca/cacert.pem –no-check-certificate

Curl error 60 while downloading ssl certificate problem certificate has expired

Почему так происходит подробно расписано на хабре.

Если коротко, то в ядре WP есть файл корневых сертификатов /wp-includes/certificates/ca-bundle.crt который используется для проверки SSL всех запросов созданных через HTTP API. В этом файле просрочен один из корневых сертификатов на основе которого был создан сертификат для вашего сайта. Поэтому запрос не может пройти проверку и выдается такая ошибка.

С очередными обновлениями WP эта ошибка должна пропасть, но вот что делать если решение нужно уже сегодня, или если вы не планируете обновлять WordPress, а рабочие HTTP запросы нужны.

Как мы исправляем ошибку

Теперь давайте посмотрим, как наши инженеры службы поддержки устраняют это сообщение об ошибке.

1. Повторно загрузите cURL CA-Bundle с сайта cURL, чтобы исправить эту ошибку. Вот шаги для этого.

  • Сначала загрузите “cacert.pem” по ссылке:http://curl.haxx.se/docs/caextract.html
  • Затем скопируйте всю страницу и сохраните ее как “cacert.pem”.
  • Теперь откройте файл php.ini и добавьте в него следующую строку.

  curl.cainfo = “[pathtofile]cacert.pem”

  • В случае, если в файле php.ini отсутствует строка curl.cainfo, просто добавьте ее в конец файла. Затем добавьте путь к файлу, в котором сохранен файл cacert.pem.
  • Наконец, перезапустите веб-сервер или Windows, перезапустите пул приложений и повторите попытку запроса.

2. Если небезопасный сертификат является самозаверяющим сертификатом с известным уровнем доверия, затем загрузите сертификат в локальное хранилище доверенных сертификатов для вашей операционной системы.

Заключение

Короче говоря, эта ошибка возникает, когда cURL не находит ни одного действительного сертификата для связи по протоколу https. Сегодня мы увидели, как наши инженеры службы поддержки исправляют эту ошибку.

Наталья Петрова
Оцените автора
Новости города Салавата
Добавить комментарий

Adblock
detector