PHP - cURL and stream wrappers unable to fetch HTTPS

535 views
Skip to first unread message

Omega

unread,
Jul 27, 2015, 3:55:42 PM7/27/15
to Google App Engine
I'm currently encountering an issue when using the Guzzle (version >= 4) library on google app engine.  It appears as though any time I try to use the library, I get the following message: 

"No system CA bundle could be found in any of the the common system locations.
PHP versions earlier than 5.6 are not properly configured to use the system's
CA bundle by default. In order to verify peer certificates, you will need to
supply the path on disk to a certificate bundle to the 'verify' request

This error is just a static message that guzzle maintains whenever it's unable to determine a certificate to use during secure connections.

I have a ticket open in the google app engine bug tracker regarding this (if anyone is able to add the php tag to it, please feel free).  I guess the issue at this point is that regardless of whether I'm using cURL, cURL lite or the stream wrappers (all of which guzzle will attempt to use), I'm always confronted with an error accessing SSL addresses.

Has anyone been able to get around this, or is this something the google apps team can look into?  I have an app I'd really like to be able to start getting some of my testing users on, but can't until this is resolved.

Stuart Langley

unread,
Jul 27, 2015, 8:31:54 PM7/27/15
to Google App Engine, atra...@gmail.com
The ca bundle is located at /etc/ca-certificates.crt. Where does guzzle expect it to be?

Brent Shaffer

unread,
Oct 8, 2015, 5:40:26 PM10/8/15
to Google App Engine
The latest version of guzzle supports the location at /etc/ca-certificates.crt. however, Guzzle 5 and below do not. 

I was able to fix this in Guzzle 5 by setting the guzzle "verify" option to the path to the certificates:

$client->setDefaultOption('verify', '/etc/ca-certificates.crt');
Reply all
Reply to author
Forward
0 new messages