让TLS 1.2与cURL一起工作很困难

时间:2016-08-01 22:37:04

标签: php ssl curl

我在卷曲操作中卷曲使用TLS 1.2的HTTPS网址时遇到困难 - 我将登录数据发布到网站并将其保存在cookiefile中。我得到的错误信息是:

“API错误:SSL连接错误”

我已尝试将curl_setopt($ch, CURLOPT_POST)设置为6,但这似乎不起作用,有什么建议吗?

我正在使用的版本:

OpenSSL版本是1.0.2b CURL版本是7.49.1 PHP是5.5 这是代码:

    public function curl_request($url, $data, $method = 'GET', $headers = array(), $ssl_verify = false)
    {
            $ch = curl_init();

            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $ssl_verify);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $ssl_verify);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($ch, CURLOPT_TIMEOUT, 20);
            curl_setopt($ch, CURLOPT_FAILONERROR, false);
            curl_setopt($ch, CURLOPT_HTTP200ALIASES, range(400, 599));
            curl_setopt($ch, CURLINFO_HEADER_OUT, true);


            if ($method == 'POST')
            {
                    curl_setopt($ch, CURLOPT_POST, 6);
                    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            }

            $resp  = curl_exec($ch);      

            if(curl_errno($ch))
            {
                    throw new Exception('Unleashed API Error:' . curl_error($ch));
            }

            //print("<pre>" . print_r($resp, true). "</pre>")

            $info = curl_getinfo($ch);

            curl_close($ch);

            $output = array();
            $output['resp'] = $resp;
            $output['info'] = $info;

1 个答案:

答案 0 :(得分:0)

  

OpenSSL版本为0.9.8b

OpenSSL 0.9.8中不支持TLS 1.2。您至少需要OpenSSL版本1.0.1。