Leo Code

主页 > PHP > php curl请求https时产生的SSL connect error

php curl请求https时产生的SSL connect error

最近在开发paypal的REST支付接口时,用到了webhooks的回调通知,但是,遇到了一个奇怪的错误,经过一系列查阅资料,终于找到了解决方案,再次记录一下。

遇到的具体问题,当使用SDK的时候,发生了错误:SSL connect error

这种错误是php.ini里面没有指定证书或者证书文件不存在导致的。

打开php.ini找到

curl.cainfo

把这个参数设置为证书所在的路径,openssl编译后,一般证书位置在/etc/ssl/certs/ca-bundle.crt

curl.cainfo="/etc/ssl/certs/ca-bundle.crt"

重启php-fpm,应该就可以搞定了。

注:如果目录下不存在该证书,重新编译openssl或者下载http://curl.haxx.se/docs/caextract.html


2016年03月17日追加

如果上述方法不行的话,去上面的网址下载cacert.pem文件放到/etc/pki/tls/certs/目录下

修改php.ini

curl.cainfo="/etc/pki/tls/certs/cacert.pem"

重启php-fpm,即可。