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

新手上路,请多包涵

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

当我尝试使用 Mandrill API 时,出现以下错误:

未捕获的异常“Mandrill_HttpError”与消息“API 调用消息/发送模板失败:SSL 证书问题:无法获取本地颁发者证书”

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

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

当然,从 http://curl.haxx.se/docs/caextract.html 下载 cacert.pem 文件到那个位置

但毕竟,重新启动了 XAMPP 和 Apache 服务器,但仍然出现相同的错误。

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

谁能建议我还能尝试什么?

原文由 Dor Dadush 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 526
2 个回答

终于让这个工作了!

  1. 下载 证书包

  2. 把它放在某个地方。就我而言,那是 c:\wamp\ 目录(如果您使用的是 Wamp 64 位,那么它是 c:\wamp64\ )。

  3. Enable mod_ssl in Apache and php_openssl.dll in php.ini (uncomment them by removing ; at the beginning).但要小心,我的问题是我有两个 php.ini 文件,我需要在这两个文件中都这样做。一个是您从 WAMP 任务栏图标获得的那个,另一个是,在我的情况下,在 C:\wamp\bin\php\php5.5.12\

  4. php.ini 文件中将这些行添加到您的证书中:

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

  1. 重新启动 Wamp 服务。

原文由 Mladen Janjetovic 发布,翻译遵循 CC BY-SA 4.0 许可协议

只需在本地再放两条线来解决问题,这对我来说很好。

 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

原文由 Bhola Kr. Khawas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题