cURL 错误 60:SSL 证书问题:无法获取本地颁发机构证书
此问题可能在 Windows 上本地开发时出现。我使用的是 Windows 10 (x64)
为了解决此错误,我从 https://curl.haxx.se/docs/caextract.html 下载了 cacert.pem
在 php.ini 中设置以下值
curl.cainfo = "C: \ php-8.0.7 \ extras \ ssl \ cacert.pem"
这些函数的行为受 php.ini 中的设置影响。
名称 | 默认值 | 可更改 | 变更日志 |
---|---|---|---|
curl.cainfo | NULL | INI_SYSTEM |
以下是配置指令的简要说明。
curl.cainfo
stringCURLOPT_CAINFO
选项的默认值。这需要是绝对路径。
cURL 错误 60:SSL 证书问题:无法获取本地颁发机构证书
此问题可能在 Windows 上本地开发时出现。我使用的是 Windows 10 (x64)
为了解决此错误,我从 https://curl.haxx.se/docs/caextract.html 下载了 cacert.pem
在 php.ini 中设置以下值
curl.cainfo = "C: \ php-8.0.7 \ extras \ ssl \ cacert.pem"
cURL 错误 60:SSL 证书问题:无法获取本地颁发机构证书
当 curl.cainfo 变量设置不正确时,会出现此本地开发错误。
我在 PHP 版本 7.3.1 中遇到了此问题
为了解决此错误,我从 https://curl.haxx.se/docs/caextract.html 下载了 cacert.pem
在 php.ini 中设置以下路径
curl.cainfo="D:\wamp64\bin\php\php7.3.1\extras\ssl\cacert.pem"
openssl.cafile="D:\wamp64\bin\php\php7.3.1\extras\ssl\cacert.pem"
即使添加了路径并重启了 Apache,在 phpinfo() 中,两个路径都显示为空。
只有在通过项目中的 PHP 代码设置后,错误才会消失。
以下代码对我有用:
$guzzle = new \GuzzleHttp\Client(['verify' => 'D:\wamp64\bin\php\php7.3.1\extras\ssl\cacert.pem']);
我在上一条评论中编辑了错误的 php.ini 文件。
即使在 phpinfo() 中显示加载的配置路径为 "D:\wamp64\bin\apache\apache2.4.37\bin\php.ini",它实际上加载的是 "D:\wamp64\bin\apache\apache2.4.37\bin\phpForApache.ini"
一旦我在 phpForApache.ini 中设置了这两个变量,详细信息就会在 phpinfo() 中显示,并且错误在没有额外编码行的情况下消失了。
截至 PHP 7.2 (Win 64),即使设置了此指令,它也不会在 phpinfo() 中显示。
(相比之下,如果 openssl.cafile 指令设置为完全相同的路径,它将显示)。