【问题标题】:curl doesn't get site contents on PHP via HTTPScurl 无法通过 HTTPS 在 PHP 上获取站点内容
【发布时间】:2015-10-28 10:18:11
【问题描述】:

我已经阅读了所有的互联网并尝试了几乎所有的解决方案,但没有任何效果。

如果我运行 curl http://... 站点,它可以工作,但如果我运行 https://... 它不会。

我用 php 5.6 运行 centos 7

如果我尝试着名的答案,也不会发生任何事情

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

唯一可以帮助我获得该网站的是

curl -4svo/dev/null --ciphers ecdhe_ecdsa_aes_128_sha https://.....

但是由于我需要发送我的标头,这不是一个解决方案,我需要与 curl_setopt 兼容的东西。

更新错误

我明白了: curl:(35)无法与对等方安全通信:否 通用加密算法。

【问题讨论】:

    标签: php unix curl


    【解决方案1】:

    我认为,这个问题是由于 cURL 版本不支持 ECC 256 位 SSL 证书和 ECDSA 签名算法(由 CloudFlare 使用)引起的。您可以通过运行以下命令来测试您的 cURL 版本是否支持此加密:

    curl -1IsS --ciphers ecdhe_ecdsa_aes_128_sha https://sslspdy.com
    

    如果您得到以下信息,那么您的 cURL 已过期:

    curl: (59) Unknown cipher in list: ecdhe_ecdsa_aes_128_sha
    

    【讨论】:

    • HTTP/1.1 200 OK 服务器:cloudflare-nginx 日期:2015 年 10 月 28 日星期三 10:42:24 GMT
    • 在过去的 12 小时里,我已经用这个卷曲的东西把我的头撞到墙上了
    • 试试这个:curl --ciphers ecdhe_ecdsa_aes_256_sha repo.thinkofdeath.co.uk/content/groups/public
    • 返回空:[root@centos7 bf]# curl --ciphers ecdhe_ecdsa_aes_256_sha repo.thinkofdeath.co.uk/content/groups/public [root@centos7 bf]#
    【解决方案2】:

    这就是魔法线!

    curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'ecdhe_ecdsa_aes_128_sha');

    【讨论】:

      猜你喜欢
      • 2017-07-25
      • 1970-01-01
      • 2015-10-17
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 2012-09-28
      • 1970-01-01
      相关资源
      最近更新 更多