在对接微信支付接口时,访问报错了,这个错误表明 cURL 在请求 HTTPS 网址时出现了证书验证的问题。为了解决这个问题,记录一下在windows系统上配置phpStudy环境。
-
下载证书文件: 从 https://curl.se/ca/cacert.pem 下载最新的
cacert.pem
文件,这是 cURL 所需的证书文件。 -
复制证书文件: 将下载的
cacert.pem
文件复制到 PHPStudy 安装目录下的php/ext/
文件夹中,确保与你的 PHP 版本对应的文件夹。 -
配置 php.ini: 编辑 PHP 配置文件
php.ini
,在文件末尾添加以下行:
[curl]
curl.cainfo = "G:\PhpStudy\phpstudy_pro\Extensions\php\php7.4.3nts\ext\cacert.pem"
确保将 G:\PhpStudy\phpstudy_pro\Extensions\php\php7.4.3nts\ext\cacert.pem
替换为你的 PHPStudy 安装路径。再接着以下步骤:
-
重启 Apache: 保存更改并重启 Apache 服务器,使配置生效。
-
检查文件权限: 确保
cacert.pem
文件以及文件夹具有正确的权限,确保 PHP 进程可以访问它。 -
确保路径正确: 确保设置的
curl.cainfo
路径正确匹配实际路径。 -
更新 cURL 版本: 如果以上方法都不起作用,尝试更新 cURL 版本。有时旧版本的 cURL 可能会遇到证书问题。
-
禁用 SSL 验证(不推荐): 如果无法解决问题,你可以在 cURL 请求中禁用 SSL 验证,但这会降低安全性。这只是一个紧急的临时解决方案。
$curlOptions = [
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
// 其他 cURL 选项...
];
$ch = curl_init();
curl_setopt_array($ch, $curlOptions);
// 发起 cURL 请求...