php - 卷曲错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 警报握手失败
问题描述
我有这个 php 代码,它试图向网络设备发送获取请求
$username='restconf-api';
$password='rest.b';
$apiUrl = 'https://10.10.0.254:1025/restconf/data/ietf-system:system-state?content=all';
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $apiUrl);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl_handle, CURLOPT_SSLVERSION, 4);
curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl_handle, CURLOPT_SSL_CIPHER_LIST, 'DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:AES128-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256:SSLv3');
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, array(
'Content-Type: application/yang-data+xml'
));
$response = curl_exec($curl_handle);
$content = curl_exec( $curl_handle );
$err = curl_errno( $curl_handle );
$errmsg = curl_error( $curl_handle );
$header = curl_getinfo( $curl_handle );
curl_close( $curl_handle );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
curl_close($curl_handle);
$xml = simplexml_load_string($response);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
var_dump( $array);
echo $array['data']['system-state']['system-version'];
这段代码在我的第一台服务器上成功运行,但是当我在其他机器上尝试它时它不起作用,我只是删除了这些行并且它起作用了
curl_setopt($curl_handle, CURLOPT_SSLVERSION, 3);
curl_setopt($curl_handle, CURLOPT_SSL_CIPHER_LIST, 'DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:AES128-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256:SSLv3');
但是当我尝试使用另一台机器时(所有这些机器都是 ubuntu 18.04 )它不起作用我试图删除 ubove 行但仍然出现此错误
错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 在我添加这些行时警告握手失败
curl_setopt($curl_handle, CURLOPT_SSLVERSION, 3);
curl_setopt($curl_handle, CURLOPT_SSL_CIPHER_LIST, 'DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:AES128-SHA256:DHE-RSA-AES128-SHA256:AES256-SHA256:SSLv3');
我收到这个错误
OpenSSL 是在没有 SSLv3 支持的情况下构建的
为什么会这样,所有机器的PHP版本都是一样的
解决方案
推荐阅读
- java - 无法让 XPath 函数 last() 工作
- javascript - 时刻 Js 的时区
- javascript - 视频/音频通信
- javascript - 我可以确定这将始终返回一个唯一的字母数字字符串吗?
- php - innerhtml+= 如何从 ajax 获取加载数据然后执行操作?
- javascript - 单击另一个选择字段时,如何禁用选择选项?
- node.js - 如何从 google Passport 检索、保存和更新 idToken
- javascript - 如何将文本文件中的行推送到数组中,以便以后对其进行操作
- python - 我的 python 代码做了它打算做的事情,但是中断/继续使用 try/catch 块?
- javascript - 无法在电子中加载反应开发工具