为什么卷曲失败在间歇地发现SSL证书工作?
-
12-11-2019 - |
题
我想我现在很好地掌握了为什么你需要在类似于Facebook这样的HTTPS API的内容时拥有SSL证书捆绑包。但我的问题是:为什么甚至没有证书和其他一些没有? 在我看来,Libcurl有一种方法可以自己克服这个问题。
任何人都知道为什么或如何发生这种情况?任何人都有同样的经历?
解决方案
CURL关于SSL证书的行为取决于CURLOPT_SSL_VERIFYPER选项。 假设您使用PHP,可以使用函数 curl_setopt 更改此选项的值。
我只有ssl的肤浅知识,但似乎卷曲的行为方式如下: 0表示没有检查,1检查证书是合法的,还检查2个检查是否将证书发出到正确的主机名。
您可以通过将curlopt_ssl_verifypeoytepeer设置为0来“关闭恼人的错误”,但这意味着您无法确定您将与正确的服务器有连接,因为任何人都可以 spoof the dns 。所以这样做是非常危险的。
官方Facebook PHP SDK使用 curlopt_cainfo ,但只有在卷曲无法自行验证证书时。我不知道为什么Facebook SDK的开发人员会产生这种条件;也许是因为阅读证书可能很昂贵。
不隶属于 StackOverflow