【问题标题】:PHP Curl: SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)PHP Curl:SSL 例程:SSL23_GET_SERVER_HELLO:reason(1112)
【发布时间】:2013-08-14 00:58:55
【问题描述】:

我正在尝试执行 HTTPS 请求:

curl_setopt($curl, CURLOPT_URL, 'https://***.com');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiesFile);
curl_setopt($curl, CURLOPT_VERBOSE, true);
$out = curl_exec($curl);

请求后,$out 为空,我得到了这个日志:

* About to connect() to ***.com port 443 (#0)
*   Trying *.*.*.*...
* connected
* Connected to ***.com (*.*.*.*) port 443 (#0)
* error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)
* Closing connection #0

为什么?

【问题讨论】:

  • 你的 php 和 openssl 平台和版本是什么?检查phpinfo();
  • Google 上的第一次点击 指向 SO 上的一个问题,该问题解释了为什么会发生这种情况:stackoverflow.com/questions/8619706/… - 糟糕的研究如何。
  • @fvu,谢谢,curl_setopt($ch, CURLOPT_SSLVERSION,3);为我工作。
  • @Waygood,PHP 5.4.10,OpenSSL/0.9.8x,Mac OS X 10.8.4

标签: php curl ssl https


【解决方案1】:

修复:

curl_setopt($ch, CURLOPT_SSLVERSION,3); 

【讨论】:

  • 非常感谢伙计。只是补充一下,因为最好利用 SPL 定义的常量,如下所示:curl_setopt($ch, CURLOPT_SSLVERSION,CURL_SSLVERSION_SSLv3);
  • 错误:SSL:无法创建上下文:错误:140A90C4:SSL 例程:SSL_CTX_new:null ssl 方法已通过
【解决方案2】:

如果您使用 PRTG 并收到此错误,请转到设置并将“SSL V2 或 V3”更改为“SSL V3”。

【讨论】:

    猜你喜欢
    • 2014-11-29
    • 2014-04-29
    • 1970-01-01
    • 2020-02-27
    • 2013-09-13
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多