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.在本地配置证书
- 将
cacert.pem
下载到本地 证书下载 - 配置php.ini
[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
我来看地震
😐不要地震
不懂操作,我用的宝塔感觉很方便。【话说电脑上评论震动感觉还挺有意思的,不过手机端建议还是去掉....
太专业了,评论就电脑地震了。