XAMPP-WAMPP PHP-SSL证书错误(unable to get local issuer certificate)

当php.ini文件的curl.cainfo和openssl.cafile配置属性没有针对任何允许你与ssl创建连接的有效证书时, 就会发生此错误, 因为它们将是无效的。如果使用cURL或使用任何类型的工具创建对外部服务器的请求, 就会遇到麻烦。
此问题是由位于Guzzle PHP HTTP客户端中的GuzzleHttp \ Exception \ RequestException和GuzzleHttp \ Ring \ Exception \ RingException类专门引发的。许多已知的项目(例如Symfony)都依赖此库来执行一些常见的http任务, 例如创建新项目(在最新的3.0版本中)。
如果找到php.ini文件, 并搜索[curl], 则这些参数可能会被注释且没有任何值:

[curl]; A default value for the CURLOPT_CAINFO option. This is required to be an; absolute path.; curl.cainfo=[openssl]; The location of a Certificate Authority (CA) file on the local filesystem; to use when verifying the identity of SSL/TLS peers. Most users should; not specify a value for this directive as PHP will attempt to use the; OS-managed cert stores in its absence. If specified, this value may still; be overridden on a per-stream basis via the "cafile" SSL stream context; option.; openssl.cafile=

为了解决这个问题, 我们只需要在两个属性中提供有效证书(cacert.pem文件)的绝对路径。
解 首先, 可能你的php发行版(使用Wamp或Xampp或其中的任何一个)可能包含有效证书, 但未启用。
使用操作系统的文件系统, 在已安装发行版的文件夹中搜索名为cacert.pem的文件。
XAMPP-WAMPP PHP-SSL证书错误(unable to get local issuer certificate)

文章图片
在这种情况下, 对于Xampp v5.6.23(PHP 5.6.23), 该文件存在并且位于perl文件夹中。现在, 将cacert.pem文件的完整文件路径复制到剪贴板中。
注意 如果你的xampp(或其他发行版)不包含任何具有该名称的文件, 请在此处下载cacert.pem文件, 并将其保存在xampp路径内的某个位置, 然后将其保存在剪贴板中的路径复制到该文件中。
再次打开php.ini文件并搜索[curl]区域, 现在我们将取消注释, 并使用剪贴板中的绝对路径(其中路径为其中的绝对路径)更改curl.cainfo和openssl.cafile属性的值。证书位于)双引号(“ 路径” )之间:
注意 即使在某些xampp发行版中, 在php.ini中也不会找到curl或openssl区域, 因此只需将其添加到php.ini文件的末尾并保存更改。
[curl]; A default value for the CURLOPT_CAINFO option. This is required to be an; absolute path.curl.cainfo ="C:\xampp\perl\vendor\lib\Mozilla\CA\cacert.pem"[openssl]; The location of a Certificate Authority (CA) file on the local filesystem; to use when verifying the identity of SSL/TLS peers. Most users should; not specify a value for this directive as PHP will attempt to use the; OS-managed cert stores in its absence. If specified, this value may still; be overridden on a per-stream basis via the "cafile" SSL stream context; option.openssl.cafile="C:\xampp\perl\vendor\lib\Mozilla\CA\cacert.pem"

最后, 重新启动apache和任何其他服务(如mysql), 然后尝试再次执行你正在做的事情。现在, 该请求应该可以正常工作了。
【XAMPP-WAMPP PHP-SSL证书错误(unable to get local issuer certificate)】玩得开心 !

    推荐阅读