我使用php(最新稳定的Ubuntu版本)的cUrl来获取远程https页面,curl_exec在到达超时后返回false。很显然,我正在使用这些设置:PHP cUrl ssl timeout
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, 0);
使用wireshark,似乎服务器在“Client Hello”后没有回答问题。 一些奇怪的事实:
- 通过CLI在同一台机器
- 运行的旧机器正常工作
提示完全相同的代码写在Perl中运行相同的脚本?有人建议重新编译curl和openssl ...我可以在开发机器上做到这一点,但生产服务器有同样的问题,为便于维护,我想只保留原始数据包... 谢谢!
我知道这将是一个正确的捂脸时刻,但请你仔细检查你居然没把'https'作为URL方案并没有错过过了' s'?如果您尝试启动SSL连接到仅查找纯文本数据的TCP端口,我可以看到发生这种情况......我认为这不太可能是一个卷曲问题。您也可以尝试强制使用特定的SSL版本('CURLOPT_SSLVERSION',从强制v3开始)。有必要测试一下,看看您是否可以使用cURL执行简单的HTTPS GET,例如'https:// google.com /' – DaveRandom 2012-08-04 18:16:19
是的,绝对不是一个卷曲问题。 请检查您的DNS。 – Dark 2012-08-06 16:33:14
工作迫使SSLVERSION为3.谢谢DaveRandom! – rcason 2012-08-07 20:01:05