今天遇到这样一个问题,我们的email在通过ssl连接到gmail , 163 等email server的时,都是OK的,但访问搜狐邮箱的时候,就出问题了,刚刚发送了clientHello出去之后,server就返回了alert 错误,如下图:
但是通过foxmail去connect 的时候,又是OK的,于是把网络包抓出来对比了一下,
IP(61.135.132.99)一致,
port (pop3 995)一致,
协议(foxmail 为为SSLV2,my email为TLSV1)不同,
算法(foxmail 29个suite, my email 2个)不同,
怀疑是server端不支持我们client的算法造成的, 我看到foxmail 和 sohu server 握手时,协商用算法套 cipher suite 0x0016,
而我们的client端ssl是不支持这一套算法的,但现在还不明确到底是不是算法不支持的原因,于是就伪造了一个cipher suite中含有
0x0016 的ClientHello 包,嘿,结果server 回传了 ServerHello,而再也没有回传Alert handshake failure 40 错误,所以这个问题
很可能还是算法不支持引起的。而现在要做的就是支持client的算法了。
今天遇到这样一个问题,我们的email在通过ssl连接到gmail , 163 等email server的时,都是OK的,但访问搜狐邮箱的时候,就出问题了,刚刚发送了clientHello出去之后,server就返回了alert 错误,如下图:但是通过foxmail去connect 的时候,又是OK的,于是把网络包抓出来对比了一下, IP(61.135.132.99)一致
昨天晚上在生产环境的某台计算机遇到了访问第三方应用报“未能创建
SSL
/TLS 安全通道”的异常。开发的同事重新写了两个命令控制台程序(.net framework 4.5 和 .netcore 3.1),问题可以100%重现。同样的代码在本地或者其它服务器上运行,可以正常使用。更为奇怪的是,同事使用 curl 工具或者 Python写的测试代码竟然都可以正常运行。
操作系统: windows
server
2016 Datecenter (Azure标准镜像)
Host: C.
php start.php start
客服系统配置https,websocket启动报如下
错误
:
SSL
handshake error: stream_socket_enable_crypto():
SSL
operation failed with code 1. Open
SSL
Error messages:
error:1
40
7609C:
SSL
routines:
SSL
23_GET_
CLIENT
_
HELLO
:http request
其实是nginx 配置问题
proxy_pa
访问HTTPS握手失败handshake_failure解决办法
问题描述:折腾了很久,查阅大半个百度几乎没解决,有个WebService项目,从JDK7升级到JDK8之后,出现
ssl
异常信息,浏览器能成功访问wsdl,但是客户端请求时报错Received fatal
alert
: handshake_failure。
网上有几种解决方案整理如下:
1.部分网友解释:是因为jdk中jce的安全...
用得好好的程序突然问题,https服务提供的网页打不开了。
设置lighttpd,打开访问日志和
错误
日志,再试,还是打不开,也没有
错误
原因。
抓包,发现客户端发送了
Client
Hello
,服务端ACK了,然后就没下文了,服务端没有发送
Server
Hello
,竟然也没有报错。
仔细看,发现
Client
Hello
只发送了11个加密套件,以前某个服务的客户端会发送六七十个加密套件,以为是证书
SSL
报文格式可以大致分为2部分,Record层 和 Handshake层,Record层中指定了后续数据的类型,
SSL
版本(一般来说固定),以及后续数据的长度。Handshake层欧威Record层的负载,其关系类似TCP层的数据作为IP层的负载。
例如上图中显示的那样,
SSL
报文头部是TVL格式:
Content Type: Handshake
Version: TLS 1...
tcp三次握手后,客户端发了个
Client
hello
,但是服务端确
返回
了,Handshake Failure问题肯定是出这里,对比这个包,跟正常的包,反复对比后,还是没能看到问题来,于是找到了
网络
同事,
网络
同事也是协助一起查看。
终于找到了这么一个帖子:Java加密套件强度限制引起的
SSL
handshake_failure我对比了下,情况几乎一样,我把作者查找问题的方法都试了一遍(验证方法可以参考上面的帖子,不再赘余),也都一致,最终我们尝试了作者给出的方法 :
升级jdk到1.8.0_...
最近在分析某个PC端程序的登录过程,发现它用的是open
ssl
进行https通讯的。
由于以前没有open
ssl
的使用经验,遂开始学习这个库,在这里记录一些TLS协议的原理,
以及open
ssl
实现TLS协议的代码分析。(TLS 相当于
SSL
协议的后续版本。)
画了一个丑陋的简图:
### 回答1:
这个
错误
的含义是 "
ssl
23_get_
server
_
hello
: tlsv1
alert
protocol version",意思是
SSL
协议中检测到了不支持的协议版本。可能是因为服务器端使用的
SSL
/TLS 协议版本过低或过高,导致连接不成功。
### 回答2:
在
网络
通信中,
SSL
协议是一种用于保障通信安全的协议。当客户端与服务器之间进行
SSL
握手时,若两端协议版本不一致,可能会导致握手失败,从而出现error:1
40
7742e:
ssl
routines:
ssl
23_get_
server
_
hello
:tlsv1
alert
protocol version的
错误
。
通常,该
错误
是由于客户端或服务器使用的
SSL
协议版本不一致导致的。例如,当客户端尝试使用TLSv1.2版本与服务器进行通信,但服务器只支持TLSv1.1时,就会出现该
错误
。在这种情况下,客户端会发送一个tlsv1
alert
protocol version警告给服务器,提示协议版本不匹配,导致握手失败。
为了解决这个问题,需要检查客户端和服务器使用的
SSL
协议版本是否一致。如果不一致,可以尝试升级其中一个协议版本,或者让双方都支持两种协议版本,从而保证通信的顺利进行。
此外,当出现该
错误
时,还可以检查是否有防火墙或代理服务器等中间设备对
SSL
通信进行了拦截或篡改,从而导致协议版本不一致。如果存在这样的问题,应该对中间设备进行相应的配置调整,以确保正常的
SSL
通信。
### 回答3:
该
错误
代码
错误
:1
40
7742e:
ssl
routines:
ssl
23_get_
server
_
hello
:tlsv1警报协议版本,通常是因为服务器或客户端使用不受支持的 TLS(安全传输层)协议版本。TLS是一种用于保护互联网通信安全的协议,在网上银行、电子邮件和其他敏感信息的传输中得到了广泛应用。
当服务器和客户端之间的通信请求使用暂不支持的协议时,访问中断并
返回
此
错误
。因此,用户需要保证服务器和客户端使用的 TLS 协议版本是彼此兼容的。大多数现代浏览器均兼容 TLS1.2 或更高版本,许多老版本浏览器使用的协议版本可能已经过时,需要更新或升级浏览器。
此外,确保服务器和客户端的时间同步和准确也很重要。如果服务器的时间与客户端时间差距太大,则可能会导致 TLS 通信失败。如果 HTTP 服务器的时间与证书的有效期不一致,也会引起此
错误
。因此,建议用户确保服务器证书正确,并在必要时更新或更换证书。
总的来说,当出现此
错误
时,用户应该检查确认服务器和客户端所使用的 TLS 协议版本是否兼容,并确保服务器证书的有效期和时间与本地相同。如果问题仍然存在,则需要咨询
网络
服务的供应商或 IT 专业人员以获得更多支持。
Cannot open the disk 'D:/vmware/Ubuntu.vmdk' or one of the snapshot disks it depends on
andis_arm:
Cannot open the disk 'D:/vmware/Ubuntu.vmdk' or one of the snapshot disks it depends on
海滨小城vip:
IOS 制作启动画面
#Page#: