cURL和SSL,connect()超时

时间:2012-02-19 12:58:31

标签: php ssl curl

我正在使用cURL连接到SSL服务器以重新发送和发送XML文件,但我一直在

  

“connect()超时!”

当我尝试连接服务器时。

我对cURL有点新意,所以我不知道服务器配置,某些证书或其他内容是否有问题。

我正在尝试运行的代码(由SSL服务器的所有者提供给我):

function post($url, $post)
{
    $ch = curl_init();
    if($ch)
    {
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT,60);
        curl_setopt($ch, CURLOPT_VERBOSE,0);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        $result = curl_exec($ch);
        echo '<pre>', curl_error($ch);
        curl_close($ch);
        if(!empty($result))
            return $result;
    }
}

cURL版本信息:

[version_number] => 463362
[age] => 3
[features] => 1597
[ssl_version_number] => 0
[version] => 7.18.2
[host] => i486-pc-linux-gnu
[ssl_version] => OpenSSL/0.9.8g
[libz_version] => 1.2.3.3
[protocols] => Array
    (
        [0] => tftp
        [1] => ftp
        [2] => telnet
        [3] => dict
        [4] => ldap
        [5] => ldaps
        [6] => http
        [7] => file
        [8] => https
        [9] => ftps
        [10] => scp
        [11] => sftp
    )

1 个答案:

答案 0 :(得分:2)

该消息仅表示在没有操作允许的时间内TCP连接过程尚未完成。

如果您尝试连接到应该在给定端口上通过TCP提供的站点,那么您可以怀疑存在防火墙,代理,NAT,路由器或其他设备,使其无法为您工作。< / p>

这实际上不是卷曲相关的问题,您应该能够通过例如将telnet运行到同一主机+端口来验证这一点:“telnet [host] [port]”,因为它也应该失败。