当前位置: 首页 > 知识库问答 >
问题:

PHP-SSL证书错误:无法获取本地颁发者证书

穆建华
2023-03-14

我正在Windows7上运行PHP版本5.6.3作为XAMPP的一部分。

当我尝试使用Mandrill API时,我得到以下错误:

未捕获异常“Mandrill_HttpError”,消息为“API调用消息/send-template失败:SSL证书问题:无法获取本地颁发者证书”

我已经尝试了在StackOverflow上读到的所有内容,包括向php.ini文件添加以下内容:

curl.cainfo = "C:\xampp\php\cacert.pem"

当然可以从http://curl.haxx.se/docs/caextract.html下载cacert.pem文件到该位置

但在所有这些之后,重新启动XAMPP和Apache服务器,但仍然得到相同的错误。

我真的不知道还能尝试什么。

谁能建议我还有什么可以尝试的吗?

共有2个答案

后安民
2023-03-14

免责声明:此代码使您的服务器不安全。

我在mandrill.php文件的第65行之后遇到了同样的问题,在该文件中,它显示$this->ch=curl_init();

添加以下两行:

curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, 0);

这解决了我的问题,也发送电子邮件使用本地主机,但我建议不要使用它的live版本live。在您的live服务器上,没有这段代码,该代码应该可以工作。

呼延才
2023-03-14

终于成功了!

>

  • 下载证书包。

    把它放在某个地方。在我的例子中,这是C:\Wamp\目录(如果您使用的是Wamp 64位,那么它就是C:\wamp64\)。

    在Apache中启用mod_ssl和在php.ini中启用php_openssl.dll(通过删除开头的来取消对它们的注释)。但是要小心,我的问题是我有两个php.ini文件,我需要在这两个文件中都这样做。一个是从WAMP任务栏图标中获得的,另一个是在C:\WAMP\bin\php\php5.5.12\中获得的

    php.ini文件中向证书添加以下行:

    curl.cainfo="C:/wamp/cacert.pem"
    openssl.cafile="C:/wamp/cacert.pem"
    

    重新启动Wamp服务。

  •  类似资料:
    • 问题内容: 我正在Windows 7上将PHP版本5.6.3作为XAMPP的一部分运行。 当我尝试使用Mandrill API时,出现以下错误: 消息“ API调用消息/发送模板失败”的未捕获异常“ Mandrill_HttpError”:SSL证书问题:无法获取本地颁发者证书 我已经尝试了我在StackOverflow上阅读的所有内容,包括将以下内容添加到php.ini文件中: 当然,还可以从h

    • 我运行PHP版本5.5.12作为WAMP的一部分。 当我尝试执行此代码时,我得到以下错误: SSL证书错误:无法获得本地发行者证书此脚本旨在通过登录和密码从认证表单获取内容。 我试图在php.ini文件中添加这段代码,并重新启动了WAMP服务器,但仍然得到相同的错误。 我真的不知道还能尝试什么。 有人能告诉我还有什么可以尝试的吗?

    • 问题内容: 我在本地开发环境上使用WAMP,并尝试从信用卡中扣款,但收到错误消息: cURL错误60:SSL证书问题:无法获取本地颁发者证书 我在Google上进行了很多搜索,很多人建议我下载此文件:cacert.pem,将其放在某个位置,然后在php.ini中引用它。这是我的php.ini中的部分: 但是,即使多次重新启动服务器并更改了路径后,我仍然收到相同的错误消息。 我使用来自Apache模

    • 我在Google上搜索了很多,很多人建议我下载这个文件:cacert.pem,把它放在某个地方,并在我的php.ini中引用它。这是我的php.ini中的部分: 然而,即使在重新启动服务器几次并更改路径后,我也会得到相同的错误消息。 我使用Apache模块中的WAMP并启用ssl_module。在PGP扩展中,我启用了php_curl。 这是我正在运行的代码:

    • 我已经在Windows Apache服务器上安装了Mandrill PHP API。当试图发送电子邮件使用下面的代码我得到的错误: Mandrill_HttpError-对消息/发送模板的API调用失败:SSL证书问题:无法获取本地颁发者证书 我不清楚Mandrill如何连接到我的本地颁发者证书。我的web服务器确实具有有效的证书,并且可以成功显示HTTPS页面。 有什么想法吗?

    • 我使用MAMP作为本地开发环境。我想实现一个谷歌认证-但不断得到这个SSL错误。 < li >正如其他SO主题所建议的,我已经在我的PHP.ini文件中添加了这行代码: 知道如何在我的本地环境中传递这个SSL错误吗? 这是代码: