首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Not hacking : 60 (cURL CurlException证书验证)

Not hacking : 60 (cURL CurlException证书验证)
EN

Stack Overflow用户
提问于 2010-09-04 23:01:23
回答 3查看 7.9K关注 0票数 8

很多人在Facebook身份验证中遇到的错误是:

代码语言:javascript
运行
复制
CurlException: 60: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

我能找到的关于它的唯一信息建议在curl中添加以下代码行:

代码语言:javascript
运行
复制
$opts[CURLOPT_SSL_VERIFYPEER] = false;
$opts[CURLOPT_SSL_VERIFYHOST] = 2;

我知道这行得通,但这是怎么回事呢?是否没有任何服务器设置/配置可以更改,而不是修改facebook.php。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-04 23:03:35

它的用途和含义:

下面的代码告诉cURL不要验证安全证书是否正确。因此,错误消失了。

代码语言:javascript
运行
复制
  $opts[CURLOPT_SSL_VERIFYPEER] = false;
  $opts[CURLOPT_SSL_VERIFYHOST] = 2;

当您使用SSL连接到远程服务器时,其证书可能无效、过期或未由可识别的CA签名。cURL通常会检查它。

CURLOPT_SSL_VERIFYHOST:

  • 1:检查SSL证书中是否存在通用名称。
  • 2:检查通用名称是否存在,并验证它是否与提供的主机名匹配。

CURLOPT_SSL_VERIFYPEER:为FALSE,以停止CURL验证对等方的证书。可以使用CURLOPT_CAINFO选项指定验证所依据的备用证书,也可以使用CURLOPT_CAPATH选项指定证书目录。如果禁用了CURLOPT_SSL_VERIFYPEER (默认为2),则CURLOPT_SSL_VERIFYHOST可能还需要为TRUE或FALSE。

如何正确启用和验证:

为了验证正确,我们需要验证提交给我们的证书是真实的。我们通过将其与我们合理*信任的证书进行比较来做到这一点。

如果远程资源受到某个主要CA颁发的证书的保护,比如Verisign、GeoTrust等人,您可以安全地与您可以从http://curl.haxx.se/docs/caextract.html获得的Mozilla证书包进行比较

将文件cacert.pem保存在服务器中的某个位置,并在脚本中设置以下选项。

代码语言:javascript
运行
复制
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE); 
curl_setopt ($ch, CURLOPT_CAINFO, "pathto/cacert.pem");

如果您正在连接一个受自签名证书保护的资源,您所需要做的就是获取一份PEM格式的证书副本,并将其附加到上述段落的cacert.pem中。

票数 17
EN

Stack Overflow用户

发布于 2012-11-28 17:30:37

在我的例子中,我不能使用curl_setopt,因为我不能编辑Facebook API类(我正在工作的项目的条件)。

我通过将从http://curl.haxx.se/docs/caextract.html下载的cacert.pem的路径添加到我的php.ini中解决了这个问题

代码语言:javascript
运行
复制
[curl]
curl.cainfo = "c:\wamp\cacert.pem"
票数 2
EN

Stack Overflow用户

发布于 2013-04-17 16:39:48

我刚刚遇到了同样的问题,在我的情况下,禁用对等验证是不可接受的。我更新了(来自facebook's gitbub的) fa_ca_chain_bundle.crt文件,现在它可以工作了。

向您致敬,Marek

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3642772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档