我正在尝试向 Cloudflare 网站发出请求。 直到昨天我还有一个工作脚本,但现在似乎请求发回是空的。 现在问题看起来很奇怪,原因如下: * 直到昨天它工作正常。 *它只发生在需要 SSL 连接的网站上。 *相同的代码适用于我的本地主机,但不适用于我的服务器。
这是我正在使用的代码:
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6',
CURLOPT_FOLLOWLOCATION => 1
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
如您所见,代码非常简单,但我只是想不通为什么它在我的服务器上不起作用,而在我的本地主机 (XAMPP) 上却运行良好。
提前致谢,祝您有美好的一天!
最佳答案
您的本地 curl 设置是否支持使用 ECC SSL 证书?
如果这仅发生在具有免费 CloudFlare 帐户(而不是专业帐户)的网站上,则意味着您的 curl 安装无法连接到使用 SSL 椭圆曲线密码术密码的网站。
您需要在您的服务器上安装这些密码。您提到它在服务器上不起作用,但在 XAMPP 上运行良好。这很可能是因为您的本地机器安装了这些密码,而您的计算机没有。您可以通过升级您的 OpenSSL 版本在 Linux 环境中执行此操作。
这应该可以解决您的问题。玩得开心,一定不要被他们的防火墙阻止 CloudFlare!
关于php - 对 Cloudflare 网站的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26944247/