错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 警报握手失败
Posted
技术标签:
【中文标题】错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 警报握手失败【英文标题】:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure 【发布时间】:2019-08-16 12:05:39 【问题描述】:我正在尝试连接到需要授权证书的服务,我在我的机器上导入证书,当我通过我的 google chrome 浏览器直接点击服务器时,它给了我完美的结果,但是当我从php curl请求它给了我sslv3警报握手失败错误。 (错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 警报握手失败)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://example.com",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_CIPHER_LIST => SSLv3,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_SSLVERSION => 7,
CURLOPT_SSLVERSION => 7,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
var_dump($response);
var_dump($err);
【问题讨论】:
【参考方案1】:您需要将证书导入 CURL 并设置任何需要的选项
$caFile = "ca.pem";
$keyFile = "key.pem";
$certFile = "client.pem";
$certPass = "xxxxxx";
curl_setopt($ch, CURLOPT_CAINFO, $caFile);
curl_setopt($ch, CURLOPT_SSLKEY, $keyFile);
curl_setopt($ch, CURLOPT_SSLCERT, $certFile);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $certPass);
您可以查看每个 CURL 选项的信息 from here
【讨论】:
首先感谢您的帮助,亲爱的,我有 3 个证书文件,这些文件的扩展名是 .pfx 我将这些证书导入到我的机器中,现在我必须通过这种方式包含或首先转换我的.pem 中的文件,然后使用它 当然,如果解决了我的问题,我一定会支持它 我在等着呢 在将它们添加到 CURL 之前,您必须将它们全部转换为 .pem,请关注this link 我使用转换为 pem 证书它只是创建一个空文件你能告诉我问题是什么以上是关于错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 警报握手失败的主要内容,如果未能解决你的问题,请参考以下文章
无法解决此错误:错误:14077458:SSL 例程:SSL23_GET_SERVER_HELLO:reason(1112) - 关于尝试啥的任何想法?
错误消息:错误:14090086:SSL例程:ssl3_get_server_certificate:证书验证失败
错误:错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败
卷曲错误:错误:1408F10B:SSL 例程:SSL3_GET_RECORD:错误的版本号
SSL 错误消息:错误:1416F086:SSL 例程:tls_process_server_certificate:证书验证失败