php微信公众平台开发获取access_token,用CURL出现certificate verify failed错误的解决方法

php微信公众平台开发获取access_token,用CURL出现certificate verify failed错误的解决方法

今天用php的curl获取access_token,出来了一个错误如下:

string(146) "SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed" NULL

 

解释过来是说:

字符串(146)“SSL证书问题,验证CA证书就可以了。详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败”为空

后来上网查了一下:

发现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。

php微信公众平台开发获取access_token,用CURL出现certificate verify failed错误的解决方法