gpt4 book ai didi

php - cURL 连接问题 - 错误设置证书验证位置

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:46 25 4
gpt4 key购买 nike

自从我们有了新服务器(之前没有问题)以来,我们一直在与 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

最佳答案

因为我已经为此苦苦挣扎了很长时间,一直无法在任何地方找到答案,但是由于@Deadooshka 在 not so related post 中的帮助找到了它。 , 我会在这里留下我的问题和答案。

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

$/etc# chmod o+x ssl

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

关于php - cURL 连接问题 - 错误设置证书验证位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43614943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com