openssl访问网站握手失败

hblqhyz 2018-05-28 04:59:30
我在vc++中使用 openssl 1.1.0h 的库访问不了 https://www.jinchutou.com 这个网站,在连接时返回了 握手失败 的信息。我的程序代码应该没有问题,因为访问别的任何网址都正常。另外,这个网址本身如用浏览器访问,除了在winxp中失败,高一点版本的操作系统如win7,win10中都没问题,而我的程序在win的所有版本中都访问不了这个网址。

代码经整理,大致是这样的:
SSL_CTX *sslContext=NULL;
SSL *sslHandle=NULL;
SSL_load_error_strings ();
SSL_library_init ();
OpenSSL_add_all_algorithms();
sslContext=SSL_CTX_new(TLS_client_method());//这里换成ssl23也不行!
sslHandle=SSL_new (sslContext);
SSL_set_fd (sslHandle, s);
err=SSL_connect (sslHandle);//这一步总是返回-1,查询详情就是 握手失败 这个信息
...//以后的代码就此省略

跪求CSDN的高人来解决一下,看是不是opensll的哪个选项没有设置好(这个网站可能有SNI)?


...全文
1510 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
FFnnz 2019-11-25
  • 打赏
  • 举报
回复
还有可能是ssl版本不一致
FFnnz 2019-11-25
  • 打赏
  • 举报
回复
跟时间没关系,你的加密套件缺少服务器想要的那种,所以https握手直接断开
cppNoException 2018-12-20
  • 打赏
  • 举报
回复
我是从2091年来的,楼主这个问题最后咋搞的,我今天碰到了一样的我呢提了
Younth_0701 2018-11-08
  • 打赏
  • 举报
回复
我也有类似问题,不过是通过代理访问 ,直连没问题,代理多了一段 使用 CONNECT 方法 连接代理服务器,这个tcp连接是正常的,再将该链接与SSL绑定时,SSL_connect失败了
赵4老师 2018-05-31
  • 打赏
  • 举报
回复
楼主是从2092年穿越回来的!
hblqhyz 2018-05-30
  • 打赏
  • 举报
回复
引用 8 楼 boise 的回复:
在Wireshark看看SSL使用的算法套件是哪个, 可能是客户端不支持的套件。 https://stackoverflow.com/questions/31970283/ssl-fatal-error-handshake-failure-40
我仔细检查过加密套件,没发现有问题。倒是发现 cleint hello 包中的 random 字段的时间不对,是2092年的时间,这明显是不对的,我估计就是这个引起的问题。但我不知道在openssl中怎么把时间设置为正确的时间:
赵4老师 2018-05-29
  • 打赏
  • 举报
回复
英语也是一门计算机语言的说。
bjgxjob 2018-05-29
  • 打赏
  • 举报
回复
在Wireshark看看SSL使用的算法套件是哪个, 可能是客户端不支持的套件。 https://stackoverflow.com/questions/31970283/ssl-fatal-error-handshake-failure-40
hblqhyz 2018-05-28
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
百度搜“ TLSv1 Record Layer: Alert (Level: Fatal, Description: Handshake Failure) Content Type: Alert (21) Version: TLS 1.0 (0x0301) Level: Fatal (2) Description: Handshake Failure (40) ”
呵呵,我也搜了,但基本都是英文,看不懂啊赵老师
赵4老师 2018-05-28
  • 打赏
  • 举报
回复
百度搜“ TLSv1 Record Layer: Alert (Level: Fatal, Description: Handshake Failure) Content Type: Alert (21) Version: TLS 1.0 (0x0301) Level: Fatal (2) Description: Handshake Failure (40) ”
hblqhyz 2018-05-28
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
学会使用抓包软件比如wireshark
用了wireshark抓包,在 server hello的包里基本就只有以下的一点信息,也看不出问题所在啊: TLSv1 Record Layer: Alert (Level: Fatal, Description: Handshake Failure) Content Type: Alert (21) Version: TLS 1.0 (0x0301) Level: Fatal (2) Description: Handshake Failure (40)
赵4老师 2018-05-28
  • 打赏
  • 举报
回复
学会使用抓包软件比如wireshark
hblqhyz 2018-05-28
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
百度搜相关关键字。
搜了很多都没找到答案,不然也不会到这来悬赏了
赵4老师 2018-05-28
  • 打赏
  • 举报
回复
百度搜相关关键字。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧