修复 Windows 上的 PHP HTTPS 证书颁发机构问题
在 Windows 上使用 PHP 发起 HTTPS 请求时,如果出现如下类似错误:
代码语言:php复制SSL certificate problem: unable to get local issuer certificate
这通常是因为 PHP 无法验证远程服务器的 HTTPS 证书,原因在于 缺少正确的 CA 根证书列表。下面是详细的修复步骤:
✅ 一键修复教程:为 Windows 上的 PHP 配置 CA 证书
第一步:下载 CA 根证书文件(cacert.pem
)
- 打开这个链接:.pemC:\php\extras\ssl\cacert.pem
- 保存为文件(例如
cacert.pem
),推荐保存到 PHP 安装目录下,例如:
第二步:修改 php.ini
配置文件
- 找到你的 PHP 配置文件
php.ini
,一般在 PHP 安装目录下。 - 打开并搜索以下两行配置:
;curl.cainfo =
;openssl.cafile =
- 修改为如下内容(取消注释并填写路径):
curl.cainfo = "C:\php\extras\ssl\cacert.pem"
openssl.cafile = "C:\php\extras\ssl\cacert.pem"
⚠️ 注意使用 绝对路径,且路径中的反斜杠使用
\
\ 或用双引号包裹。
第三步:重启服务器(如 Apache/Nginx)
保存完 php.ini
后,记得重启 PHP 所使用的服务器:
- 使用 Apache:重启 Apache 服务
- 使用 Nginx:重启 PHP-FPM 或整个服务
- 使用 CLI:重新运行命令即可生效
✅ 验证是否成功
你可以运行以下 PHP 脚本测试:
代码语言:php复制<?php
$response = file_get_contents(";);
echo $response ? "成功访问 Google!" : "访问失败!";
如果不再报错且能成功返回内容,则说明修复成功!