使用php curl请求https的时候出现错误“ssl certificate problem: self signed certificate in certificate chain”,这种情况是无法验证客户端根证书导致,解决办法如下。
方法一
忽略证书验证,在curl方法中添加以下代码即可。
curl_setopt($curl, curlopt_ssl_verifypeer, false); curl_setopt($curl, curlopt_ssl_verifyhost, false);
缺点: 每个curl方法中都要添加上面的方法,有点麻烦。
方法二:
从curl官方网站,下载根证书: ,然后修改php.ini中加入该证书,并重启web服务。
#在php.ini中加入[ssl] curl.cainfo = "d:xamppphpcacert.pem"openssl.cafile = "${curl.cainfo}"