Пытаюсь работать с
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}