Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guzzle // Выяснить причину проблем с сертификатами #2

Closed
antode opened this issue Apr 26, 2022 · 2 comments
Assignees

Comments

@antode
Copy link
Contributor

antode commented Apr 26, 2022

При попытке выполнить запрос:

./bin/run.bash php tests/functional/api_request.php

приложение падает с ошибкой

Fatal error: Uncaught GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: certificate has expired (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://sailplay.ru/api/v2/login/ in /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:211
Stack trace:
#0 /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(158): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(110): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#3 /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php(28): GuzzleHttp\Handler\ in /home/dev/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 211

для проверки сделал

new GuzzleHttp\Client(['verify' => false]),

и заработало

поверхностно погуглил:

Что нужно делать:

  • Разобраться, в сути проблемы, описать.
  • Проверить есть ли она локально или это происходит только в докере.
  • Подумать над вариантами решения, описать.
@rleekg
Copy link
Contributor

rleekg commented May 4, 2022

  • Разобраться, в сути проблемы, описать.

Суть проблемы, в образе докера php:7.2.5-cli, по всей видимости старый образ который давно не обновлялся
https://hub.docker.com/layers/php/library/php/7.2.5-cli/images/sha256-c6c84906a3a028c66c699643736e13d3b60566d191688188e22ac2d472c3baa0?context=explore

Устарели cacerts ОС. Подробности здесь

  • Проверить есть ли она локально или это происходит только в докере.

Локально нет ошибки, в докере есть.

  • Подумать над вариантами решения, описать.
  • Увеличение версии PHP до 7.2.20 (начиная с 7.2.20 ошибки нет)
  • Установить сертификат в ручную
    • Загрузить https://curl.se/ca/cacert.pem
    • Установить параметр в php.ini: curl.cainfo=путь до файла cacert.pem
  • Установить сертификат https://curl.se/ca/cacert.pem в докере
    Варианты расписаны здесь

@antode
Copy link
Contributor Author

antode commented May 4, 2022

понравилось решение отсюда

apt-get update
apt-get upgrade -y

сделал коммит в main f60672a

@antode antode closed this as completed May 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants