【问题标题】:PHP cUrl ssl timeoutPHP cUrl ssl 超时
【发布时间】:2012-08-04 18:08:59
【问题描述】:

我正在使用 cUrl 和 Php(最新稳定的 Ubuntu 版本)来获取远程 https 页面,并且 curl_exec 在达到超时后返回 false。显然我正在使用这些设置:

curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER,   0);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST,   0);

使用wireshark,似乎服务器在“Client Hello”之后没有应答。 一些奇怪的事实:

  1. 用 perl 编写的相同脚本由 CLI 在同一台机器上运行
  2. 运行旧机器的完全相同的代码可以正常工作

提示?有人建议重新编译 curl 和 openssl ......我可以在开发机器上这样做,但生产服务器有同样的问题,为了便于维护,我想只保留原始数据包...... 谢谢!

【问题讨论】:

  • 我知道这将是一个适当的面部护理时刻,但请您仔细检查您是否确实将 https 作为 URL 方案并且没有错过 s?如果您尝试启动与仅寻找纯文本数据的 TCP 端口的 SSL 连接,我可以看到这种行为......我认为这不太可能是 cURL 问题。您也可以尝试强制使用特定的 SSL 版本(CURLOPT_SSLVERSION,从强制 v3 开始)。值得测试一下您是否可以使用 cURL 执行简单的 HTTPS GET,例如https://google.com/
  • 是的,绝对不是卷曲问题。还要检查您的 DNS。
  • 强制 SSLVERSION 为 3。感谢 DaveRandom!

标签: php ssl curl


【解决方案1】:

解决方法:

curl_setopt($soap_do, CURLOPT_SSLVERSION, 3);

【讨论】:

  • 谢谢。这个答案是我问题的关键。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
  • 2023-03-18
  • 2018-07-12
相关资源
最近更新 更多