我在卷曲操作中卷曲使用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;
答案 0 :(得分:0)
OpenSSL版本为0.9.8b
OpenSSL 0.9.8中不支持TLS 1.2。您至少需要OpenSSL版本1.0.1。