个性化阅读
专注于IT技术分析

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的文件。

Cacert.pem文件ssl curl

在这种情况下, 对于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), 然后尝试再次执行你正在做的事情。现在, 该请求应该可以正常工作了。

玩得开心 !

赞(0)
未经允许不得转载:srcmini » XAMPP-WAMPP PHP-SSL证书错误:unable to get local issuer certificate

评论 抢沙发

评论前必须登录!