• php出现SSL certificate problem: unable to get local issuer certificate的解决办法


    当在本地使用curl或者一些其它封装好的http类库或组件(如php界 知名的 http客户端 Guzzle)需要访问https时,如果本地没有配置证书,会出现SSL certificate problem: unable to get local issuer certificate的报错信息。
    解决办法一(环境配置方面)
    ①、下载pem文件

    ②、将文件拷贝到任意目录下,这里我拷贝到了D:/Visual-NMP-x64/Bin/PHP/php-7.4.13-nts-x64目录下

    ③在php.ini配置文件中,配置curl.cainfo配置项的值 例如 我这里配置为:curl.cainfo =“D:/Visual-NMP-x64/Bin/PHP/php-7.4.13-nts-x64/cacert.pem”

    ④、最后重启环境即可。
    解决办法二(代码层面)
    ①、如果是使用curl相关函数的话,那么可以进行如下设置:

    如果是直接使用php内置的curl相关函数的话,那么 可以在curl相关代码中添加下面的代码,表示不检查ssl(这种方式一般用于本地调试。)

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //停止验证证书(一般只需要设置此项为false即可)
     
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); //设置为 1 是检查服务器SSL证书中是否存在一个公用名(common name)。译者注:公用名(Common Name)一般来讲就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain)。 设置成 2,会检查公用名是否存在,并且是否与提供的主机名匹配。 在生产环境中,这个值应该是 2(默认值)。这里我们也可以直接设置为false
     
     
    //如果不是有什么特别细节的问题的话,我们一般只需要设置上面哪一行代码 即 CURLOPT_SSL_VERIFYPEER选项 为false 即可。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ②、如果是使用Guzzle类库的话,代码可以这么设置,如下所示:

    $client = new GuzzleHttp\Client();
     
    //以下是让Guzzle取消ssl证书验证!!!
    $client->request('GET', '/', ['verify' => false]); //取消ssl验证
     
     
     
     
    //以下是让Guzzle使用ssl证书验证!!!别看错了!!!!!!
    // 使用系统的CA包 (默认设置)
    $client->request('GET', '/', ['verify' => true]); //这个可以不设置,因为默认就是true
     
    //使用磁盘上自定义的SSL证书
    $client->request('GET', '/', ['verify' => '/path/to/cert.pem']);
     
     
    //注意:Guzzle以上代码只在Guzzle6的版本中使用过,如果是其它低版本或者Guzzle升级了版本,写法可能有变动,记得查阅官方文档即可
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    LVS -DR
    Rapid chain
    web前端大一实训 HTML+CSS+JavaScript王者荣耀(60页) web课程设计网页规划与设计 HTML期末大作业 HTML网页设计结课作业
    组件化与插件化
    (c语言)移位操作符
    GPT-5 一年半后发布?对此你有何期待?
    制作一个简单HTML公司官网网页设计(HTML+CSS)
    nginx源码分析 --数据类型
    SpringMVC+Shiro的基本使用
    PaddleOCR 服务化部署(基于PaddleHub Serving)
  • 原文地址:https://blog.csdn.net/qq_24023151/article/details/132779085