调用第三方api

PHP需要的CA证书

  • php项目能够正常运行但是请求三方api时报错:SSL certificate problem: unable to get local issuer certificate

  • 问题原因:系统CA证书包缺失

  • 解决方式:修改PHP配置文件,找到php.ini

    1
    2
    3
    4
    5
    6
    7
    8
    [curl]
    ; 找到或添加这一行,指向下载的 CA 证书
    curl.cainfo = "/etc/ssl/certs/cacert.pem"

    [openssl]
    ; 找到或添加这一行
    openssl.cafile = "/etc/ssl/certs/cacert.pem"

    • 下载最新的 CA 证书包(通过宝塔终端):
      1
      2
      # 进入服务器终端(宝塔面板左侧【终端】)
      wget https://curl.se/ca/cacert.pem -O /etc/ssl/certs/cacert.pem
    • 如果服务器使用的是Windows系统那么下载CA证书包:打开浏览器,访问 https://curl.se/ca/cacert.pem 将文件保存到 C:\cacert.pem(或你喜欢的任何路径,如 D:\cacert.pem),然后修改你的配置文件,注意如果前面有“;”要将“;”删除掉,修改后重载你的php
      1
      2
      3
      4
      5
      [curl]
      curl.cainfo = "C:/cacert.pem" ; 注意用正斜杠或双反斜杠

      [openssl]
      openssl.cafile = "C:/cacert.pem"