您现在的位置是:网站首页>>PHP>>php

PHP解决通过curl访问https时出现SSL certificate problem: unable to get local issuer certificate

发布时间:2018-11-05 16:54:49作者:wangjian浏览量:715点赞量:0

    今天公司让我帮忙抓取某网站数据,由于我之前写过爬虫方面的代码,所以这次写起来很快,代码写完成之后发现curl返回为false,于是我通过curl_error()打印出curl错误信息,错误信息提示SSL certificate problem: unable to get local issuer certificate

    解决方法:

    (1):第一种方式简单粗暴,直接设置curl忽略ssl认证

    将curl的两个属性 CURLOPT_SSL_VERIFYPEER ,CURLOPT_SSL_VERIFYHOST设置为false


    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);

    image.png

    重新测试,问题解决

    (2):配置信任的服务器HTTPS验证

    1:下载证书包

    将下载下来的cacert.pem文件放到PHP环境中

    2:配置php.ini

    curl.cainfo = 'E:\phpStudy\PHPTutorial\Apache\bin\cacert.pem'
    openssl.cafile='E:\phpStudy\PHPTutorial\Apache\bin\cacert.pem'

    重新启动Apache,重新测试成功

0 +1