无法识别本地发行人

时间:2017-02-12 18:49:02

标签: php ssl curl openssl ssl-certificate

我收到此错误:

SSL problem: can't identify local issuer

一旦我调用该函数来保存图像或检索用户的Facebook图像:

file_get_contents()

我所做的是:

  • 我的网站在Azure * .azurewebsites.com上运行
  • 我添加了自定义域名和ssl证书,这些证书都是从GoDaddy
  • 购买的
  • 我在Mac上使用OpenSSL创建了证书签名请求(CSR)(GoDaddy要求)
  • 与它签名并下载它以获取.p7b文件和.crt文件
  • 我将.crt文件添加到Azure,一切正常,我的自定义域现在旁边有锁

所以在这些步骤之后,使用Facebook登录也会出现错误,所以我做了一个临时修复:

curl_setopt($rest, CURLOPT_SSL_VERIFYPEER, false);

当然不建议这样做,但它允许我测试网站的其余部分。错误仍然发生,但仅在调用file_get_contents()时。我已经尝试过这些来自我所见过的修补程序:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/cacert/cacert.pem");

但没有骰子。有人可以准确解释错误的含义并对抗它吗?那太棒了。而且,这可能是由于使用OpenSSL创建我的证书签名请求...不确定。请确认。

1 个答案:

答案 0 :(得分:0)

curl_setopt标志仅适用于您传递给这些调用的处理程序。 file_get_contents无法了解任何CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST个标记。

file_get_contents更改为卷曲电话。