我有一个HTTPS的server,但是不知道为什么有的时候TLS握手能成功,有的不行。
对成功和失败的情况我分别抓了包:
1. yahoo_failed.pcap
这个是访问yahoo失败的情况,客户端在收到**server hello**之后就把socket关掉了。起初我以为是client和server的加密方式不匹配,但是看了一下server端提供了**TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xc030) **加密方式,client端也支持,这下就不知道是怎么回事了。
还有一点比较奇怪的地方是,在client hello里面,外层显示的TLS版本号是1.0,内层却写的是1.2。但是这个应该不是原因,因为成功的包里面也是这样的。
- bing_success.pcap 这个是访问bing成功的情况,可以看到客户端收到server hello之后发出了client key exchange,然后tls握手成功了。
两个pcap文件是用google drive共享的,如果你能回答这个问题,相信获得这两个文件难不倒你。