cURL error: SSL certificate problem

cURL error 60: SSL certificate problem: unable to get local issuer certificate 错误通常与 cURL 在验证 SSL 证书时遇到的问题有关。以下是解决此问题的一些步骤:

1. 更新 cacert.pem 文件

cURL 使用 CA 证书来验证 SSL 连接。你可以下载最新的 cacert.pem 文件并配置 cURL 使用它:

  1. 下载 cacert.pem

  2. 配置 PHP 使用该文件

    • 将下载的 cacert.pem 文件放到你的 PHP 安装目录中,例如 C:\xampp\php\extras\ssl\

    • 编辑 php.ini 文件,添加或修改以下行:

      [curl]
      curl.cainfo = "d:\xampp\php\extras\ssl\cacert.pem"
      

2. 检查 OpenSSL 扩展

确保你已在 php.ini 中启用 OpenSSL 扩展:

extension=openssl

3. 重启 Web 服务器

在更改 php.ini 文件后,确保重启你的 Web 服务器(如 Apache 或 Nginx),使更改生效。

4. 直接忽略 SSL 验证(不推荐)

如果你在开发环境中且只是想临时绕过这个问题,可以在 cURL 请求中禁用 SSL 验证(不推荐用于生产环境):

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

5. 检查 cURL 版本

确保你使用的 cURL 版本是最新的,旧版本可能会有一些 SSL 相关的问题。

6. 确认 PHP 和 cURL 配置

运行以下命令以确认 PHP 和 cURL 配置:

phpinfo();

查找 cURL 和 OpenSSL 部分,确保它们的配置正确。

7. 系统根证书更新

在某些操作系统上,可能需要更新根证书。确保你的操作系统是最新的,有时更新系统会解决 SSL 证书问题。

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计