Facebook Connect PHP SDK Curl Peer SSL验证错误

时间:2010-05-20 15:49:37

标签: php curl facebook options

我正在将Facebook Connect整合到我们的应用程序中。我认为在http://github.com/facebook/php-sdk使用Facebook官方SDK是最好的方式,因为它在FB Developers维基上做广告。

但我无法让它发挥作用。在研究API代码时,我记得我之前关于CURLOPT_SSL_VERIFYPEER参数的经历。此参数的默认值为“true”,并且在API中未设置,隐式将其设置为true。

我将CURLOPT_SSL_VERIFYPEER参数更改为false,问题解决了。使用它为true,我从Graph API for / get / me查询得到的是“boolean(false)”但是将CURLOPT_SSL_VERIFYPEER参数设置为false同样的curl查询给了我用户json对象。

我想问的是,使用Facebook PHP SDK作为“CURLOPT_SSL_VERIFYPEER”参数设置为false的副作用是什么。更一般地说,如果我在没有同行验证的情况下启动卷曲会话,那么它是否有意义。

2 个答案:

答案 0 :(得分:2)

PHP安装有问题。最有可能的是,您没有验证SSL证书所需的ENTRUST中间证书。这是他们的证书链,

Certificate chain
 0 s:/C=US/ST=California/L=Palo Alto/O=Facebook, Inc./CN=*.facebook.com
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance CA-3
 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance CA-3
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
 2 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
   i:/C=US/O=Entrust.net/OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Secure Server Certification Authority

将CURLOPT_SSL_VERIFYPEER设置为false只会禁用证书检查。你不应该在生产中这样做。

答案 1 :(得分:-3)

试试这个,它解决了我的问题

Facebook :: $ CURL_OPTS [CURLOPT_SSL_VERIFYPEER] = false; Facebook :: $ CURL_OPTS [CURLOPT_SSL_VERIFYHOST] = 2;