【问题标题】:Issues with cURL connections - error setting certificate verify locationcURL 连接问题 - 错误设置证书验证位置
【发布时间】:2017-09-22 17:16:57
【问题描述】:

自从我们有了新服务器后,我们一直在努力解决 cURL(以前没有问题)。在过去的 6 个月中,我们一直在搜索并尝试从根本上解决问题,但没有成功。

我们正在运行一个 Ubuntu 16.04 服务器,在 PHP 和 Nginx 上有一个 Codeigniter 项目。

我们目前遇到问题的(composer)包是Mailgun API(它扩展了composer包php-http

以下是我们通过 cURL 连接时遇到的错误

An uncaught Exception was encountered

Type: Http\Client\Exception\RequestException

Message: error setting certificate verify locations: CAfile: /etc/ssl/certs/ca-bundle.crt CApath: /etc/ssl/certs

Filename: /var/www/ domain /vendor/php-http/curl-client/src/Client.php

Line Number: 137

到目前为止,唯一对我们有用的解决方案是禁用 CURLOPT_SSL_VERIFYPEER,但我们必须在 composer 包中这样做,这显然不是一个合适的解决方案。

我希望这里有人能说明我们如何能够解决这个问题。

到目前为止我们所做的尝试:

  • 检查服务器上的日期
  • 禁用CURLOPT_SSL_VERIFYPEER,但不是可行的解决方案
  • 设置.curlrc文件(但问题是webserver用户正在执行,所以没地方放?
  • 检查/etc/ssl/certs/ 文件夹以查看文件是否存在。
  • sudo update-ca-certificates --fresh

文件夹的文件权限

root@Ubuntu-1604-xenial-64-minimal /etc/ssl/certs # ls -la ca*
lrwxrwxrwx 1 root root     37 Apr 26 11:17 ca6e4ad9.0 -> ePKI_Root_Certification_Authority.pem
-rwxrwxrwx 1 root root 274340 Mar  8 17:09 ca-bundle.crt
-rwxrwxrwx 1 root root 274340 Apr 26 11:25 ca-certificates.crt
-rwxrwxrwx 1 root root 261889 Jan 18 06:12 cacert.pem
-rwxrwxrwx 1 root root 261889 Jan 18 06:12 cacert.pem.txt

【问题讨论】:

  • 考虑curl.cainfo
  • @Deadooshka 谢谢,我已经考虑过了,但不确定你想让我做什么:-) 我已经检查过了,它设置为curl.cainfo = /etc/ssl/certs/cacert.pem。此文件存在并已从以下位置下载新版本:curl.haxx.se/docs/caextract.html
  • 您是否检查了该路径的文件/目录权限?
  • 你能用 ie file_get_contents() 从 curl 上下文中读取这个文件吗?
  • 它由 php-interpreter 或 web-server 进程读取,除非您运行 curl 可执行文件。我还会检查路径的另一个目录的权限。

标签: php codeigniter ssl curl nginx


【解决方案1】:

由于我一直在努力解决这个问题并且无法在任何地方找到答案,但由于@Deadooshka 在not so related post 中的帮助找到了它,我会留下我的问题和答案在这里。

对我来说,/etc/ssl 文件夹需要执行权限的解决方案。我不知道哪里出了问题,但我的解决方案如下:

$ /etc # chmod o+x ssl

当权限错误时,我无法在从浏览器执行的 Web 根目录中的 PHP 脚本中使用 file_get_contents(/etc/ssl/certs/ca-certificates.crt) 读取证书文件。修复后,文件被读取。

【讨论】:

    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 2015-07-26
    • 2017-06-08
    • 1970-01-01
    • 2013-11-10
    • 2011-10-22
    • 2015-11-17
    • 2018-04-06
    相关资源
    最近更新 更多