PHP cURL error 60: SSL certificate problem: unable to get local issuer certificate原因及解决办法

PHP cURL请求http是没有问题的, 但是请求https时报错:

cURL error 60: SSL certificate problem: unable to get local issuer certificate
(see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

原因

SSL证书问题: 无法获得本地颁发者证书.
没有配置信任的服务器HTTPS验证: 默认cURL被设为不信任任何CAs, 就是说, 它不信任任何服务器验证

解决方法如下:

1.在本地配置证书
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
; curl.cainfo写上cacert的所在目录
curl.cainfo = "xxx/xxx/cacert-2018-10-17.pem" ;
  • 配置好了之后, 重启网络服务就可以了
2.不推荐, 简单粗暴使用curl_exec()之前跳过ssl检查项
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

推荐

另: 给大家推荐一个很好用的PHP网络请求库GuzzleHttp

我来吐槽

*

*

已有 2 条评论

  1. 程志辉

    不懂操作,我用的宝塔感觉很方便。【话说电脑上评论震动感觉还挺有意思的,不过手机端建议还是去掉....

  2. 张波博客

    太专业了,评论就电脑地震了。