TLS 1.2在cURL中不起作用 [英] TLS 1.2 not working in cURL

查看:1554
本文介绍了TLS 1.2在cURL中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法卷曲使用TLS1.2的HTTPS URL,在卷曲操作中,我将登录数据发布到网站中并保存在cookiefile中. 我收到的错误消息是

I am having trouble curling an HTTPS url that uses TLS1.2, in my curl operation I post my login data into the website and save it in cookiefile. The error message I am getting is this

 error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error

我尝试将VERIFYPEERVERIFYHOST设置为0,但这似乎不起作用,有什么建议吗?

I have tried setting VERIFYPEER and VERIFYHOST to 0 but that does not seem to work, any suggestions?

以下是我使用的版本:

  • OpenSSL版本为0.9.8b
  • CURL版本为7.24.0
  • PHP是5.3

这是代码:

$setuplogin = curl_init(); 
curl_setopt ($setuploginurl, CURLOPT_URL, $url); 
curl_setopt ($setuploginurl, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt ($setuploginurl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt ($setuploginurl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt ($setuploginurl, CURLOPT_SSLVERSION, 'CURL_SSLVERSION_TLSv1_2');
curl_setopt ($setuploginurl, CURLOPT_POSTFIELDS, 'username=uname&password=pword&act=login&submit=Login');
curl_setopt ($setuploginurl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"); 
curl_setopt (setuploginurl, CURLOPT_TIMEOUT, 60); 
curl_setopt ($setuploginurl, CURLOPT_COOKIESESSION, TRUE); 
curl_setopt ($setuploginurl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($setuploginurl,  CURLOPT_HEADER, 1);
curl_setopt ($setuploginurl,CURLOPT_ENCODING,"gzip");
curl_setopt ($setuploginurl, CURLOPT_POST, true);
curl_setopt ($setuploginurl, CURLOPT_COOKIEJAR, 'cookies.txt'); 
curl_setopt ($setuploginurl, CURLOPT_FRESH_CONNECT , 1);

$loginp= curl_exec($setuploginurl); 
if ($loginp === FALSE) {
    die(curl_error($setuploginurl));
}

curl_close ($setuploginurl); 
var_dump ($loginp);

推荐答案

您必须为CURLOPT_SSLVERSION值使用整数值,不要上面列出的字符串

You must use an integer value for the CURLOPT_SSLVERSION value, not a string as listed above

尝试一下:

curl_setopt ($setuploginurl, CURLOPT_SSLVERSION, 6); //Integer NOT string TLS v1.2

http://php.net/manual/en/function.curl- setopt.php

value应该为整数: CURLOPT_SSLVERSION

value should be an integer for the following values of the option parameter: CURLOPT_SSLVERSION

其中一个

CURL_SSLVERSION_DEFAULT(0)
CURL_SSLVERSION_TLSv1(1)
CURL_SSLVERSION_SSLv2(2)
CURL_SSLVERSION_SSLv3(3)
CURL_SSLVERSION_TLSv1_0(4)
CURL_SSLVERSION_TLSv1_1(5)
CURL_SSLVERSION_TLSv1_2(6).

CURL_SSLVERSION_DEFAULT (0)
CURL_SSLVERSION_TLSv1 (1)
CURL_SSLVERSION_SSLv2 (2)
CURL_SSLVERSION_SSLv3 (3)
CURL_SSLVERSION_TLSv1_0 (4)
CURL_SSLVERSION_TLSv1_1 (5)
CURL_SSLVERSION_TLSv1_2 (6).

这篇关于TLS 1.2在cURL中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆