【问题标题】:cacert.pem - certificate has expiredcacert.pem - 证书已过期
【发布时间】:2016-09-21 09:33:55
【问题描述】:

当我尝试在我的 Linux 机器上通过 php 执行 cURL 时,我收到以下错误:

SSL certificate problem: certificate has expired

我的cacert.pem是根据https://curl.haxx.se/ca/cacert.pem最新的版本

我在php.ini 文件中有以下几行(已编辑):

[openssl]
;...
openssl.cainfo = /etc/ssl/certs/cacert.pem

;...
openssl.cafile = /etc/ssl/certs/cacert.pem

详情:

  • 系统:Linux 用户 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64
  • PHP版本:PHP版本7.0.5-2+deb.sury.org~trusty+1

顺便说一句,当谈到这个问题时,我几乎是个新手。我确定我错过了什么。我在这里查看以前的答案,但我仍然无法弄清楚。

更新 1 - 当我使用 Postman chrome 应用程序时,一切正常。

【问题讨论】:

    标签: php curl


    【解决方案1】:

    curl 使用不同的证书路径...尝试将其添加到您的 php.ini 文件中:

    curl.cainfo = "/etc/ssl/certs/cacert.pem"
    

    如果您仍然遇到问题,您可以尝试通过 CURLOPT_SSL_VERIFYPEER 和 CURLOPT_SSL_VERIFYHOST 设置以“不安全”模式运行 curl,disabling ssl verification

    【讨论】:

    • 老实说,我尽力让 SSL 正常工作,但没有关闭任何选项。最后,它适用于 php-fpm 但不适用于 php-cli。 php.ini 中应该缺少一些东西......太烦人了......我用参数 CURLOPT_SSL_VERIFYPEER 和 CURLOPT_SSL_VERIFYHOST 禁用了它。
    • Tony,你能告诉我们 curl 默认在哪里寻找证书吗?我正在尝试查找此信息,但我搜索的每个页面似乎都有不同的答案。
    猜你喜欢
    • 2018-02-24
    • 2014-03-13
    • 2020-09-21
    • 1970-01-01
    • 2016-12-22
    • 2020-09-18
    • 2012-10-22
    • 2016-08-09
    • 2021-12-26
    相关资源
    最近更新 更多