使用CURL出现certificate verify failed错误的解决方法

今天使用CURL访问微信平台接口时遇到一个错误,返回错误代码如下:

1
2
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

从字面上理解应该是和证书相关,在百度的时候搜索到国外一篇博客:http://davidwalsh.name/php-ssl-curl-error,发现cURL组件有一个CURLOPT_SSL_VERIFYPEER选项。

CURLOPT_SSL_VERIFYPEER:

禁用后cURL将终止从服务端进行验证。使用CURLOPT_CAINFO选项设置证书使用CURLOPT_CAPATH选项设置证书目录 如果CURLOPT_SSL_VERIFYPEER(默认值为2)被启用,CURLOPT_SSL_VERIFYHOST需要被设置成TRUE否则设置为FALSE。

从7.10开始默认为TRUE。 

于是在CURL增加配置选项:

1
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

微信接口返回了正确的access_token。

原文地址:https://www.cnblogs.com/kenshinobiy/p/4674263.html