首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP SSL23_GET_SERVER_HELLO:tlsv1

PHP SSL23_GET_SERVER_HELLO:tlsv1
EN

Stack Overflow用户
提问于 2017-05-12 10:26:07
回答 1查看 12K关注 0票数 1

我无法通过curl访问https站点,而且我被卡住了。

url可以在浏览器中打开,并使用以下安全连接:

对此站点的连接使用强协议(TLS 1.2)、强密钥交换(ECDHE_RSA和P-256)和强密码(AES_128_GCM)进行加密和身份验证。

在这里,我使用的php cUrl脚本:

代码语言:javascript
复制
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$Org_Input); //$Org_Input
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3'); 
curl_setopt($curl, CURLOPT_AUTOREFERER, true); //updates the referrer
curl_setopt($curl, CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);  
curl_setopt($curl, CURLOPT_SSLVERSION, 6);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
$response= curl_exec($curl);
if (FALSE === $response) {
   echo "cUrl Error: " . curl_error($curl) . "<br><br>";
}

该脚本以前使用过http url,现在如果将url重定向到https,则会引起问题。我相信它与curl_setopt有关($curl,CURLOPT_SSLVERSION,6);

我试着用剧本

代码语言:javascript
复制
for($i=0;$i<=6;$i++) {
        //if($i==2) continue;
        $ch = curl_init($Org_Input);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSLVERSION, $i);
        if(curl_exec($ch) === false)
                echo $i.': ' . curl_error($ch) . "<br>";
        else
                echo $i.': works<br>';
        echo "\n";
        curl_close($ch);
}   

我得到以下错误消息:

0:错误:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1警报协议版本

1:错误:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1警报协议版本

2:与www.example.com:443相关的未知SSL协议错误

3:错误:14094410:SSL routines:SSL3_READ_BYTES:sslv3警报握手失败

4:错误:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1警报协议版本

5:错误:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1警报协议版本

错误:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1警报协议版本

由于该网站使用"TLS 1.2“作为安全连接,我相信6是正确的值,因为它代表"CURL_SSLVERSION_TLSv1_2”

但是,我仍然坚持错误响应:"1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1警报协议版本“

,有人知道会有什么问题吗?

cUrl版本:7.21.0OpenSSL版本: OpenSSL 0.9.8q 2 201012月

EN

回答 1

Stack Overflow用户

发布于 2017-05-12 10:44:07

2010年12月2日OpenSSL 0.9.8q

这种不再支持的OpenSSL版本不支持现代协议(TLS1.2)和现代密码。此外,该站点可能需要TLS SNI扩展,而旧软件可能不支持该扩展。

现在还不清楚这些问题中到底有什么是真正的问题,因为您到达的站点的URL是未知的。但我很肯定这就是其中一个原因,OpenSSL、curl和PHP绑定的升级将解决这个问题。

由于该网站使用"TLS 1.2“作为安全连接,我相信6是正确的值,因为它代表"CURL_SSLVERSION_TLSv1_2”

由于此版本的OpenSSL不支持TLS1.2,尝试使用此设置并不能解决问题,但可能会使问题变得更糟。尝试使用TLS1.0代替,因为这是这个OpenSSL版本所能做的最多的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43935450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档