php curl请求https时产生的SSL connect error
最近在开发paypal的REST支付接口时,用到了webhooks的回调通知,但是,遇到了一个奇怪的错误,经过一系列查阅资料,终于找到了解决方案,再次记录一下。
遇到的具体问题,当使用SDK的时候,发生了错误:SSL connect error
这种错误是php.ini里面没有指定证书或者证书文件不存在导致的。
打开php.ini找到
1 | curl.cainfo |
把这个参数设置为证书所在的路径,openssl编译后,一般证书位置在/etc/ssl/certs/ca-bundle.crt
1 | 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
1 | curl.cainfo= "/etc/pki/tls/certs/cacert.pem" |
重启php-fpm,即可。
原文章:https://www.leocode.net/article/index/13.html