Curl error 77 что это

cURL не работает (Ошибка № 77) для SSL-соединений в CentOS для пользователей без полномочий root

Совсем недавно мой сервер перестал работать для запросов curl на адреса https: // для моего веб-сервера. Немного покопавшись, кажется, что это проблема с пользователем, на котором работает веб-сервер.

Если я SSH на сервер как root & call

Я не смог найти однозначного ответа на эту проблему, и моя хостинговая компания отказывается помогать, так как она «Out of support», хотя на прошлой неделе она работала нормально!

«Если libcurl был создан с поддержкой NSS, то в зависимости от дистрибутива ОС Возможно, потребуется предпринять некоторые дополнительные шаги для использования общесистемного CA Cert db. RedHat поставляется с дополнительным модулем, libnsspem. Итак, который позволяет NSS читать пакет OpenSSL PEM CA. Эта библиотека отсутствует в OpenSuSE, а без него, NSS может работать только со своими собственными внутренними форматами. NSS также имеет новый формат базы данных : https://wiki.mozilla.org/NSS_Shared_DB «

. но я не могу найти информацию о том, как я могу получить эту работу всей системы на моем сервере CentOS.

Информация

Может кто-нибудь пролить свет на то, почему это могло внезапно измениться, или, что еще лучше, как это исправить?

Оказывается, проблема была в том, что скрипт запускался из cPanel «электронная почта, отправленная в сценарий», поэтому работал как пользователь, так что это была проблема пользователя, но никак не влияла на веб-сервер.

Причина, по которой пользователь не смог получить доступ к каталогу/etc/pki, была вызвана тем, что у него был только ssh-доступ в тюрьму. Как только я предоставил полный доступ, все заработало нормально.

Спасибо за информацию, хотя, Реми.

Если вы недавно пришли сюда, как и я, при поиске той же ошибки напрасно, вы можете обнаружить, что это обновление NSS, вызывающее сбой в CentOS. Протестируйте, запустив yum update, и посмотрите, есть ли ошибки, curl также создает эту ошибку. Решение достаточно простое, просто установите NSS вручную.

Если вы похожи на меня, выдается ошибка, подобная этой:

Это заняло некоторое время, но выяснилось, что это не сертификат CA, потому что, воссоздав их и проверив все настройки, я исключил их. Это мог быть libcurl, поэтому я отправился на поиски обновлений.

Как уже упоминалось, я воссоздал сертификаты CA. Вы можете сделать это также, но это может быть пустой тратой времени. http://wiki.centos.org/HowTos/Https

Следующим шагом (вероятно, следовало быть моим первым) было проверить, что все было обновлено, просто запустив yum.

Вам, конечно, нужно скачать с ближайшего зеркала и проверить правильность версии/ОС и т.д. Мы в основном скачиваем и устанавливаем обновление с rpm, чтобы исправить yum. Как отметил @grumpysysadmin, вы можете сократить количество команд. @cwgtex сообщил, что вы должны установить обновление с помощью команды RPM, что делает процесс еще проще.

Чтобы исправить ситуацию с WordPress вам нужно перезагрузить ваш http-сервер.

Попробуй еще раз и удачи!

Убедитесь, что у вас установлены правильные права на пакет сертификатов CA. Как правило, это означает доступ для чтения для всех к файлам CA в каталоге/etc/ssl/certs, например /etc/ssl/certs/ca-certificates.crt.

Вы можете увидеть, какие файлы были настроены для вас версия curl с

Здесь вам нужен доступ для чтения к /etc/ssl/certs/ca-certificates.crt

И то же самое здесь.

Ошибка связана с повреждением или отсутствием файлов сертификата цепочки SSL в каталоге PKI. Вам необходимо убедиться, что файлы находятся в комплекте, выполнив следующие действия: В вашей консоли/терминале:

‘curl’ пытался открыть этот путь, чтобы получить Центры сертификации. Я обнаружил с:

и ясно увидел, что открывать не удалось по этой ссылке.

Мое исправление было:

Это должно настроить все снова. Если у вас есть частные ЦС для корпоративного или самозаверяющего использования, убедитесь, что они находятся в/etc/pki/ca-trust/source/anchors, чтобы их можно было добавить заново.

Я сталкивался с той же проблемой всякий раз, когда пытался выполнить curl на моем https-сервере.

Заметил эту проблему, когда я неправильно настроил путь хранилища ключей. После исправления пути хранилища ключей все заработало.

Источник

ошибка cURL: [77] ошибка установки сертификата проверки местоположения

Я использую PayPal IPN класс Quixotix-PHP-PayPal-IPN
Теперь я получаю уведомление от PayPal для моего слушателя IPN,
и я активирую класс, но я получаю следующую ошибку:

Я ищу об этой ошибке,

у меня нет опыта в этом штате, и я не знаю, где выполнять команды и что мне нужно скачать

так что кто-то может объяснить мне, как я могу установить пакет в Cpanel на Godaddy?

Решение

Я не PHP-разработчик, и я не буду помогать вам с Linux, но вы сможете это сделать, тщательно изучив ответы на эти два вопроса:

Похоже, что проблема связана с вашим центром сертификации. МЕДА пишет: (источник: https://stackoverflow.com/a/26260710/399124 )

Предполагая, что это исправляет, теперь нам нужно выяснить, что не так с пакетом.

Есть ли файл в /home/star1231/public_html/cert/api_cert_chain.crt даже существуют? Если нет, скачайте его с (https://raw.githubusercontent.com/Quixotix/PHP-PayPal-IPN/master/cert/api_cert_chain.crt ) и положить его в папку.

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

Другие решения

Хорошо, если кому-то нужно решение …
Во-первых, скачать api_cert_chain.crt

(если эта ссылка не работает, просто поищите в Google «download api_cert_chain.crt» или что-то в этом роде.)

Во-вторых, после загрузки этого файла поместите этот файл в папку «cert», где находится ваш прослушиватель ipn.
и ты готов к работе.

Источник

Как мне обрабатывать сертификаты с помощью cURL при попытке получить доступ к URL-адресу HTTPS?

Я получаю следующую ошибку, используя curl:

Как установить этот сертификат для проверки местоположения? Благодарю.

В Ubuntu Linux (и аналогичном дистрибутиве):

В Arch Linux (малина Pi)

В документации указано:

Этот пакет включает файлы PEM сертификатов CA, позволяющие приложениям на основе SSL проверять подлинность SSL-соединений.

У меня также была установлена ​​самая новая версия ca-сертификатов, но все еще получалась ошибка:

Копирование моего сертификата в ожидаемый пункт назначения, запустив

работал у меня. Вам нужно будет создать папки для целевого адресата, если они не существуют, запустив

При необходимости измените приведенную выше команду, чтобы имя файла назначения соответствовало пути, ожидаемому с помощью curl, т.е. замените /etc/pki/tls/certs/ca-bundle.crt на путь, следующий за “CAfile:” в сообщении об ошибке.

(см. комментарий от Роберта)

/.curlrc со следующим содержимым

Помните, что это может означать, что вы не разговариваете с конечной точкой, о которой вы думаете, поскольку они представляют сертификат, не подписанный CA, которому вы доверяете.

дал мне следующий ответ об ошибке:

и не появляется сообщение об ошибке. В качестве бонуса теперь у меня установлен apt-cyg. И ca-сертификаты.

@roens – это правильно. Это влияет на всех пользователей Anaconda, с нижеприведенной ошибкой
curl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none

Переименуйте двоичный файл curl Anaconda:)
mv /path/to/anaconda/bin/curl /path/to/anaconda/bin/curl_anaconda

ИЛИ удалить завиток Anaconda
conda remove curl

$ which curl
/usr/bin/curl

Другой альтернативой для устранения этой проблемы является отключение проверки сертификата:

Это сработало для меня

затем перейдите в папку сертификатов в

то вы скопируете файл ca-certificates.crt в /etc/pki/tls/certs

Для PHP-кода, запущенного на XAMPP в Windows, я обнаружил, что мне нужно отредактировать php.ini, чтобы включить ниже

а затем скопируйте в файл https://curl.haxx.se/ca/cacert.pem и переименуйте в curl-ca-bundle.crt и поместите его в путь \xampp (I не смог заставить curl.capath работать). Я также обнаружил, что CAbundle на сайте cURL недостаточно для удаленного сайта, к которому я подключался, поэтому использовал тот, который указан с предварительно скомпилированной версией Windows curl 7.47.1 на http://winampplugins.co.uk/curl/

Кажется, ваши завитки указывают на несуществующий файл с сертификатами CA или аналогичными.

Для первичной ссылки на сертификаты CA с curl см.: https://curl.haxx.se/docs/sslcerts.html

curl выполняет проверку сертификата SSL по умолчанию, используя “bundle”
Certificate Authority (CA) открытых ключей (сертификатов CA). По умолчанию
пучок называется curl-ca-bundle.crt; вы можете указать альтернативный файл
используя опцию –cacert.

Если этот сервер HTTPS использует сертификат, подписанный ЦС, представленный в
пакет, проверка сертификата, вероятно, не удалась из-за
проблема с сертификатом (может истек или имя может
не соответствует доменному имени в URL-адресе).

Для того, что стоит, проверка выполнения which curl также значительна.

У меня была такая же проблема. Как оказалось, мой файл /etc/ssl/certs/ca-certificates.crt искажен. Последняя запись показала что-то вроде этого:

Это было очень неприятно, потому что моя команда update-ca-certificates не давала мне предупреждения.

Это может быть или не быть проблемой, зависящей от версии curl, поэтому вот моя версия, просто для полноты:

Запустите следующую команду в git bash, которая отлично работает для меня

Если вы используете homebrew на macOS или linuxbrew в linux, попробуйте переустановить openssl и curl выполнив следующие действия на этой странице.

Это сообщение об ошибке указывает на то, что curl не может установить безопасное соединение с использованием openssl. Переустановка openssl должна решить проблему. Чтобы временно использовать небезопасное соединение для curl и git для загрузки любых необходимых файлов, выполните:

Затем установите или переустановите openssl и curl:

Наконец, отмените изменения безопасности, чтобы curl и git снова использовали безопасные соединения:

Возможно, вам придется запустить новый сеанс оболочки, чтобы проверить результат с

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

Ошибка связана с повреждением или отсутствием файлов сертификатов цепочки SSL в каталоге PKI.
Вам нужно убедиться, что файлы ca-bundle, следуя шагам:
В консоли/терминале:

Введите этот сайт: https://rpmfind.net/linux/rpm2html/search.php?query=ca-certificates, получите свой сертификат ca, для SO.
Скопируйте URL-адрес для загрузки и вставки URL-адреса: wget your_url_donwload_ca-ceritificated.rpm
теперь установите yout rpm:

теперь перезапустите службу:
мой пример этой команды:

Это исправлено для меня:

Ниже описываются шаги, чтобы исправить проблемы.
1. Узнайте, что файл существует по определенному URL.
2. Если нет, то загрузите файл с URL. https://curl.haxx.se/ca/cacert.pem
3. Скопируйте и вставьте файл в файл по указанному пути в файле php.ini.
4. Перезапустите сервис apache.

Просто создайте папки, которых нет в вашей системе..

и создайте файл, используя следующую команду,

sudo apt-get установить ca-сертификаты

а затем скопируйте и вставьте сертификат в папку назначения, которая отображается в вашей ошибке. with message ‘error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none’ in ” with message ‘error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none’ in убедитесь, что вы вставили файл в точное место, указанное в ошибке. Используйте следующую команду для копирования вставки.

У меня была эта проблема, и оказалось, что моя версия CURL не может анализировать закодированные DER сертификаты (и не обращала внимания на параметр –cert-type). Когда я конвертировал сертификат в формат PEM, он работал.

У меня такая же проблема.

Это была моя ошибка

Он отлично работает для меня

Я переименую имя установочного каталога git в git_repo “.

Источник

Я использую socialite в Laravel 5 для настройки входа в facebook. Я внимательно следил за инструкциями, пока не застрял со следующей ошибкой.

поэтому я нашел этот ответ, чтобы исправить его, который действительно прошел, но затем я получил эту ошибку

Любые идеи, в чем причина этой ошибки?! и как это исправить?!

ОТВЕТЫ

Ответ 1

Надеюсь, это поможет.

Ответ 2

Измените настройку в файле php.ini:

Ответ 3

cURL error 77: error setting certificate verify locations: CAfile: C:\xampp\apache\bin\curl-ca-bundle.crt CApath: none (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Это хорошо работает для меня:

Ответ 4

Тогда он отлично работает!

Ответ 5

Оформить двойную кавычку в файле php.ini: если вы скопировали и прошли из Интернета, возможно, вы получили неправильную двойную кавычку:

Ответ 6

Это сработало для меня.

Ответ 7

Вам нужно заменить существующий сертификат на другой здесь. После этого:

Ответ 8

Я прочитал каждую нить, которую я смог найти, и этот предоставил недостающую часть.

Фон:. Я столкнулся с этой проблемой, пытаясь заставить Drupal 8 проверить наличие обновлений в новой среде разработки (на основе wamp).

Если вы используете стек wamp, перезапустите его. Вы должны быть добрым.

Ответ 9

Сначала вам нужно загрузить файл «curl.cainfo», тогда вам нужно найти его в C:\xampp\php\cacert.pem.txt.

Во-вторых, вам нужно открыть файл php.ini в Xampp и скопировать его = >

curl.cainfo = C:\xampp\php\cacert.pem.txt в любом месте.

Третий, пожалуйста, перезапустите Apache Server, обновите страницу локального хоста, и это должно работать нормально.

Ответ 10

это сработало для меня

надеюсь, что это поможет кому-то:)

Ответ 11

Если кто-то работает с Windows с Plesk, и они получают эту ошибку.

Вы должны убедиться, что путь curl.cainfo находится внутри каталога Plesk PHP, иначе вы получите ошибку выше даже с исправлением.

Исправлено для меня. Надеюсь, это поможет кому-то, когда-нибудь где-нибудь.

Ответ 12

Для окон

У меня была такая же проблема после того, как я обновил php в окне 2008. Внезапно все мои php коды перестали работать. То, что я сделал, я opned php.ini, тогда я нашел строку

curl.cainfo = «C:\Program Files (x86)\PHP\v7.0\cacert.pem» (не забудьте удалить, до curl.cainfo)

и все пошло нормально. Вам нужно загрузить файл сертификата cert.pem и поместить его где угодно на своем сервере и изменить строку, как я сделал в php.ini

Ответ 13

У меня возникли некоторые проблемы с инструкциями в отношении ошибки 77.

В Windows 7, в зависимости от настроек безопасности, загруженный файл может быть заблокирован. Смотрите скриншот:

Curl error 77 что это. Смотреть фото Curl error 77 что это. Смотреть картинку Curl error 77 что это. Картинка про Curl error 77 что это. Фото Curl error 77 что это

После того, как я разблокировал файл и обеспечил надлежащие права доступа пользователя, мне также пришлось поместить файл в следующее место:

В дополнение к изменению php.ini для других сообщений по этому вопросу.

После выполнения описанных выше шагов, перезапуска Apache через панель управления XAMPP, ошибка была устранена.

Ответ 14

У меня была такая же проблема, и я пробовал каждое решение, упомянутое здесь и в других сообщениях, но никто из них не работал. Я пробовал
1) Установка правильных прав файла (не работает)
2) Изменение расширения файла (не работает)

затем я переместил файл cacert.pem внутри php/directory в xampp и перезапустил его, он работал. Надеюсь, это поможет кому-то.

Ответ 15

Ответ 16

Я пробовал @mahesh-singh-chouhan, @omarsafwany, решения @LyleK. но повторяйте такую ​​же ошибку.

После этого я обновляю файл php.ini без двойных кавычек и с расширением .pem, и мне удастся получить желаемый результат с помощью кода ниже.

Я также добавил скриншот.

Пожалуйста, сначала попробуйте рекомендации пользователей, если не удалось использовать это.

Спасибо за решения Это создает для меня способ @mahesh-singh-chouhan, @omarsafwany, @LyleK [! [введите описание изображения здесь] [1]] [1]

Ответ 17

Кажется, вы забыли добавить цитату для пути к файлу. У меня была такая же ошибка (77), потому что я забыл добавлять кавычки. Я решил проблему, добавив это. ex: «C:\AppServ\php\cacert.pem»

Ответ 18

вы не внимательно прочитали ошибку, теперь внимательно прочитайте

cURL, ошибка 77: ошибка установки сертификата, проверка местоположения: CAfile: D:\XAMPP\apache\bin\curl-ca-bundle.crt CApath: нет (см. http://curl.haxx.se/libcurl/c/libcurl-errors.html)

это означает, что вам не хватает файла с именем curl-ca-bundle.crt для проверки местоположения сертификата, поэтому вам просто нужно поместить этот файл (curl-ca-bundle.crt) в папку XAMPP\apache\bin \, и все в порядке ошибка 77 исчезла

curl-ca-bundle.crt, для загрузки файла вы можете воспользоваться этой ссылкой https://github.com/nirmalkumar98/nk

Ответ 19

у меня была эта проблема в Windows 2012

у меня был виртуальный выделенный сервер, который хост для Laravel

тогда у меня была эта ошибка и

в моем файле php.ini найдите эту строку

; Значение по умолчанию для опции CURLOPT_CAINFO. Это должно быть

; абсолютный путь. curl.cainfo = extras/ssl/cacert.pem

я вставляю свой загружаемый файл в php файл вот так:

curl.cainfo = «C:\Program Files (x86)\PHP\v7.2\extras\ssl\cacert.pem» Curl error 77 что это. Смотреть фото Curl error 77 что это. Смотреть картинку Curl error 77 что это. Картинка про Curl error 77 что это. Фото Curl error 77 что это

Curl error 77 что это. Смотреть фото Curl error 77 что это. Смотреть картинку Curl error 77 что это. Картинка про Curl error 77 что это. Фото Curl error 77 что это

в моем случае я просто перезапустить свой сайт

Источник

libcurl returns error code 77 when the CURLOPT_SSL_VERIFYPEER is not disabled

I am not very familiar with curl or HTTP requests, but trying to learn.

Without disabling the SSL_VERIFYPEER option, the response is always 77. This is fine for testing, but I would like to know how to solve that when releasing my software. It seems that I should somehow download the host’s SSL certificate in PEM format and point libcurl to it.

1 Answer 1

Problem with reading the SSL CA cert (path? access rights?)

When negotiating a TLS or SSL connection, the server sends a certificate indicating its identity. Curl verifies whether the certificate is authentic, i.e. that you can trust that the server is who the certificate says it is. This trust is based on a chain of digital signatures, rooted in certification authority (CA) certificates you supply. curl uses a default bundle of CA certificates (the path for that is determined at build time) and you can specify alternate certificates with the CURLOPT_CAINFO option or the CURLOPT_CAPATH option.

When CURLOPT_SSL_VERIFYPEER is enabled, and the verification fails to prove that the certificate is authentic, the connection fails. When the option is zero, the peer certificate verification succeeds regardless.

So yes, if you intend to validate the server’s certificate, you need to provide libcurl with the Certificate Authority (CA) that was used to sign the server’s certificate. If you don’t have the CA available, you can’t validate the certificate.

The documentation also says:

Authenticating the certificate is not enough to be sure about the server. You typically also want to ensure that the server is the server you mean to be talking to. Use CURLOPT_SSL_VERIFYHOST for that. The check that the host name in the certificate is valid for the host name you’re connecting to is done independently of the CURLOPT_SSL_VERIFYPEER option.

WARNING: disabling verification of the certificate allows bad guys to man-in-the-middle the communication without you knowing it. Disabling verification makes the communication insecure. Just having encryption on a transfer is not enough as you cannot be sure that you are communicating with the correct end-point.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *