@Rinten

Как убрать проверку SSL для cURL в viber-bot-php?

Пытаюсь работать с https://github.com/Bogdaan/viber-bot-php для организации вайбер-канала. Столкнулся с тем, что библиотека работает не на всех серверах. У некоторых есть проблемы с сертификатом SSL.
Я нагуглил два решения: установка сертификата и его добавление в php.ini (для меня этот путь закрыт) и убирание проверки сертификата вообще, в методе release из \vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php
. Второй вариант у меня не получается, при добавлении
curl_setopt($resource, CURLOPT_SSL_VERIFYHOST, null);
            curl_setopt($resource, CURLOPT_SSL_VERIFYPEER, null);

ошибка сохраняется. Видимо, я что-то делаю не так.

Эта проблема разобрана на SO, но мне это не помогло.
https://stackoverflow.com/questions/39860538/curl-...

Как обойти проверку?

Лог ошибок:
Exception exception 'GuzzleHttp\Exception\RequestException' with message 'cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)' in C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php:190
Stack trace:
#0 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(153): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(106): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Handler\CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#3 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Handler\Proxy.php(28): GuzzleHttp\Handler\CurlHandler->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#4 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Handler\Proxy.php(51): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(Object(GuzzleHttp\Psr7\Request), Array)
#5 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\PrepareBodyMiddleware.php(66): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(Object(GuzzleHttp\Psr7\Request), Array)
#6 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Middleware.php(30): GuzzleHttp\PrepareBodyMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#7 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\RedirectMiddleware.php(70): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Request), Array)
#8 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Middleware.php(60): GuzzleHttp\RedirectMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#9 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\HandlerStack.php(67): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Request), Array)
#10 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Client.php(277): GuzzleHttp\HandlerStack->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#11 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Client.php(125): GuzzleHttp\Client->transfer(Object(GuzzleHttp\Psr7\Request), Array)
#12 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\guzzlehttp\guzzle\src\Client.php(131): GuzzleHttp\Client->requestAsync('POST', 'send_message', Array)
#13 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\bogdaan\viber-bot-php\src\Client.php(88): GuzzleHttp\Client->request('POST', 'send_message', Array)
#14 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\bogdaan\viber-bot-php\src\Client.php(176): Viber\Client->call('send_message', Array)
#15 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\viber_bot\webhook.php(74): Viber\Client->sendMessage(Object(Viber\Api\Message\Text))
#16 [internal function]: {closure}(Object(Viber\Api\Event\Message))
#17 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\bogdaan\viber-bot-php\src\Bot\Manager.php(83): call_user_func(Object(Closure), Object(Viber\Api\Event\Message))
#18 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\bogdaan\viber-bot-php\src\Bot.php(228): Viber\Bot\Manager->runHandler(Object(Viber\Api\Event\Message))
#19 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\viber_bot\webhook.php(76): Viber\Bot->run()
#20 {main}

Next exception 'Viber\Api\Exception\ApiException' with message 'cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)' in C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\bogdaan\viber-bot-php\src\Client.php:91
Stack trace:
#0 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\bogdaan\viber-bot-php\src\Client.php(176): Viber\Client->call('send_message', Array)
#1 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\viber_bot\webhook.php(74): Viber\Client->sendMessage(Object(Viber\Api\Message\Text))
#2 [internal function]: {closure}(Object(Viber\Api\Event\Message))
#3 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\bogdaan\viber-bot-php\src\Bot\Manager.php(83): call_user_func(Object(Closure), Object(Viber\Api\Event\Message))
#4 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\vendor\bogdaan\viber-bot-php\src\Bot.php(228): Viber\Bot\Manager->runHandler(Object(Viber\Api\Event\Message))
#5 C:\inetpub\wwwroot\xxxxxxxxx.ru\test\viber_bot\webhook.php(76): Viber\Bot->run()
#6 {main}
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
Fernus
@Fernus
Техник - Механик :)
use \GuzzleHttp\Client; // Тут подключаем пакет Guzzle

$cfg = array(
                     'defaults' => array(
                            'verify' => false, // This is profit :) Тут говорим, чтобы не проверял SSL
                        ),
                        'http_errors' => false // ...
                    );

$client = new Client($cfg); // Передаём конфиг в Guzzle

// . . .тут допустим $client->get(URL);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы