问题
SSL certificate problem: unable to get local issuer certificate
SSL证书问题:无法获取本地发行者证书
解决
某些时刻我们可以通过如下方法跳过SSL验证,但是如果访问者一定要对SSL进行校验的话,就不行了。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //访问者一定要对SSL进行校验时,就不能再设置为false
可以尝试按照以下步骤解决:
1、到此链接下载最新的证书(点击页面上的
cacert.pem
下载即可)https://curl.haxx.se/docs/caextract.html2、打开 php.ini 文件,找到
curl.cainfo = ""
这一项,应先去掉注释符,然后将其设置为你的证书文件路径,如:curl.cainfo = "C:\cert_file\cacert.pem"
,该配置项也支持.crt
格式的证书文件。3、在 微信公众平台 > 开发 > 基本配置 > 公众号开发信息 > IP白名单 中,加入你开发机器的公网IP地址(不知道是多少的,打开百度搜索关键词 "IP",第一个就是)。
线上环境
如果你不是本地开发环境,而是线上环境的话,最好还是为域名申请SSL证书,配置https访问。不同web服务器所需要的证书文件和配置方法都不太一致,具体的,可以参考腾讯云的证书安装指引: https://cloud.tencent.com/document/product/400/4143