facebook - 为什么查找 ssl 证书的 curl 失败会间歇性地工作?

标签 facebook ssl curl libcurl intermittent

我想我现在已经很好地理解了为什么在从像 facebook 这样的 https api 中提取内容时需要 ssl 证书包。但我的问题是:为什么有时即使没有证书也能正常工作,而有些则不行? 在我看来,libcurl 有自己解决这个问题的方法。

有人知道为什么会这样吗?有人有过同样的经历吗?

最佳答案

关于 SSL 证书的 cUrl 行为取决于 CURLOPT_SSL_VERIFYPEER 选项。 假设你使用 PHP,你可以使用函数 curl_setopt更改此选项的值。

我对 SSL 只有粗浅的了解,但 cUrl 的行为似乎如下所示: 0表示不检查,1检查证书是否合法,2检查还检查证书是否颁发给正确的主机名。

您可以通过将 CURLOPT_SSL_VERIFYPEER 设置为 0 来“关闭恼人的错误”,但这意味着您不能确定您将连接到正确的服务器,任何人都可能会 spoof the DNS .所以这样做是非常危险的。

官方 facebook php sdk 使用 CURLOPT_CAINFO 提供自己的证书,但仅当 curl 无法自行验证证书时。我不知道为什么 facebook sdk 的开发人员会把这个作为条件;可能是因为阅读证书可能很昂贵。

关于facebook - 为什么查找 ssl 证书的 curl 失败会间歇性地工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9433101/

相关文章:

json - 负载不是有效的 JSON

php - $_POST 通过 cURL 不工作

c++ - 我不确定在使用 Curl 时如何查看 TLS session 详细信息

php - 将 FB 帐户与我网站上的帐户相关联

iphone - MotionBegan 没有在整个应用程序中被调用

ios - Facebook iOS SDK,针对 FBSession 的异常,*** 断言失败 -[FBSession 关闭]

ios - Facebook 注册

python - 使用 Scapy 制作 DTLS ClientHello 数据包

azure - 如何在 Microsoft Azure 应用程序网关上禁用 TLSv1

php - 使用 GuzzleHttp 时出现 cURL 错误 60