SSL certificate problem: unable to get local issuer certificate (with new information) #879
Description
On my dev environment (Mac) I used to be able to use laravel-websockets without any issues. Recently after running some updates things stopped working and I am now getting the
SSL certificate problem: unable to get local issuer certificate
error.
I've been trying to troubleshoot this issue and found a lot of new information which doesn't seem to be mentioned on the multiple other SSL threads so I thought I would share here to help us all come to an answer.
#864 #845 #815 #792 #760 #753 #743 #732 #680
First of all, it should be noted that curl_options
was deprecated as of 6.0.0
of pusher/pusher-php-server
.
https://github.com/pusher/pusher-http-php/blob/master/CHANGELOG.md
I checked my version and I'm on 7.0.1
. This is on the project doing the broadcasting. On the project hosting the laravel-websockets
package it's on 5.0.3
So all solutions pointing to the "old way" of circumventing this issue by using, provided you're using ^6.0
'curl_options' => [
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_SSL_VERIFYPEER => 0,
],
... are now obsolete
In debugging the issue, I noticed that if I modify this file vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php
and add
$options['verify'] = false;
inside the __invoke
method.
Then the problem goes away.
The only remaining issue now is that I'm at a loss of how to set this verify=false
in any of the configuration files.
Even though pusher has deprecated curl_options
, I can't find any information yet on how we are supposed to disable verification following this deprecation.
Hopefully this new information leads us to answer as I see many people struggling with this issue right now