今天遇到这样一个问题,我们的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的算法了。