Php PayPal cURL选项(CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST)问题

Php PayPal cURL选项(CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST)问题,php,curl,paypal,Php,Curl,Paypal,我从PayPal网站上得到了一段代码: // turning off the server and peer verification(TrustManager Concept). // really paypal??? why not just include a recent cert??? curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 正如

我从PayPal网站上得到了一段代码:

// turning off the server and peer verification(TrustManager Concept).
// really paypal??? why not just include a recent cert???
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
正如你在我的评论中看到的,我想知道为什么贝宝会禁用这些选项


我知道(从以前的头痛:)在WindowsCurl上使用了一个过时的证书文件

但我的服务器上有一个更新的证书文件,我可以使用它:

curl_setopt($ch, CURLOPT_CAINFO, 'E:\path\to\curl-ca-bundle.crt');
那么,如果只需要使用另一个(更新的)证书文件,为什么PayPal会“建议”禁用它呢

那不是更安全吗


或者我遗漏了什么(我很确定PayPal有足够的钱购买有效的证书:p)?

是的,确保客户使用更新的CA证书捆绑包会更安全。(这个问题是关于,他们已经有了证书。)

一个原因可能是,它可以防止令人头疼的支持问题,人们在他们每年1美元的共享主机箱上运行脚本,遇到问题等等。
最佳实践?没有。但是除了ctrl+c ctrl+v之外,有更多知识的人将能够正确设置它


编辑:我们当前的示例代码强制VERIFYPEER和VERIFYHOST。如果遇到任何SSL握手错误,请记住这一点,因为您可能需要指向根证书文件副本

“在Windows上,cURL使用过时的证书文件”是完全错误的。curl根本不提供任何CA证书捆绑包,因此更新证书的责任落在用户身上…@Daniel Stenberg:好吧,我已经有一段时间没有在Windows上使用curl了。Well cURL在7.18.0(我知道是2008年1月28日)之前都会附带过时的证书包你知道的,你是对的。我的措辞是草率的,因为我可能应该提到几年前curl确实提供了一个CA-cert包。。。对不起,谢谢你帮我澄清@丹尼尔斯滕伯格:谢谢你自己。如果我从你@curl.haxx.se.那里得到我的信息,我也不会感到惊讶