curl: (60) SSL certificate problem: unable to get local issuer certificate
该文档为V5时编写的文档,仅适用于V5.0
如果在使用中无论是微信端还是后台出现了包含下方内容的错误提示,那就是服务器没有设置openssl组件及证书。
错误内容:
curl: (60) SSL certificate problem: unable to get local issuer certificate
这是 SSL 证书问题所致,在使用 SDK 调用微信支付等相关的操作时可能会遇到报 “SSL certificate problem: unable to get local issuer certificate” 的错误。
微信公众平台提供的文档中建议对部分较敏感的操作接口使用 https 协议进行访问,例如微信支付和红包等接口中涉及到操作商户资金的一些操作。所以在调用这些接口时,除了按照官方文档设置操作证书文件外,还需要保证服务器正确安装了 CA 证书。
解决办法:
1. 下载CA证书:
从http://curl.haxx.se/ca/cacert.pem 下载CA 证书,下载后将其放在服务器某个目录,然后记住这个目录路径,我们将他放在了服务器根目录/root/www/cacert.pem这个目录。
2. 修改php.ini文件
在php.ini搜索 curl.cainfo 这个关键词,搜索到之后将最前面的分号;删除,然后在等号=后面添加证书路径,设置如下:
curl.cainfo = /root/www/cacert.pem
提示:如果您使用的是宝塔面板,在软件管理 PHP版本后面的设置、配置文件中可快速修改。
3. 重启php