CURL获取错误:14094410:SSL

时间:2014-11-20 07:58:14

标签: php curl

这是我的代码。我正在尝试从服务器获取信息。

但是我被卡在了中间。请帮我。

收到错误,例如

[errors] => Array ( [0] => error:14094410:SSL 
                 routines:SSL3_READ_BYTES:sslv3 alert handshake failure ) ) 

以下是我编写的代码,请检查并帮助我。 将不胜感激任何帮助。

public function get_quotes(){
     $reservation_obj->source = "test";
     $reservation_obj->location_code = "test";
     $reservation_obj->start_date = "2010-06-01 19:00";
     $reservation_obj->end_date = "2010-06-04 13:50";


     $reservation_obj->action = "get_quotes";
     $json = json_encode($reservation_obj);
     $curl_opts = array(
     CURLOPT_HEADER => false,
     CURLOPT_HTTPHEADER => array('Content-Type: text/json', 'Content-length: '.strlen($json)),
     CURLOPT_POST => true,
     CURLOPT_POSTFIELDS => $json,
    CURLOPT_RETURNTRANSFER => true,
     CURLOPT_URL => "https://myserver/test.php",
     CURLOPT_VERBOSE => false,
     CURLOPT_SSLCERT => getcwd()."/newfile.crt.pem",
     CURLOPT_SSLCERTTYPE => "PEM",
     CURLOPT_SSLKEY=> getcwd()."/newfile.key.pem",
     CURLOPT_SSLKEYTYPE => "PEM",
     CURLOPT_SSL_VERIFYHOST => false,
     CURLOPT_SSL_VERIFYPEER => false,
     CURLOPT_SSLVERSION => 3
     );

     $curl = curl_init();
     curl_setopt_array($curl, $curl_opts);
     if(!$response = curl_exec($curl)){
     $response->errors[] = curl_error($curl);
     }
     curl_close($curl);

     if(count($response ->errors)){
      print_r($response);
     }else{

     print_r($response);

     }

     }

1 个答案:

答案 0 :(得分:2)

注释掉CURLOPT_SSLVERSION => 3行,然后重试。

他们说SSL v3很容易受到攻击(很抱歉),所以很多服务器都不允许使用v3。

如果您有兴趣,这是一篇文章。 https://access.redhat.com/articles/1232123

尝试后请告诉我结果。感谢。