根据 version 信息能够知道客户端支持的最高的协议版本号,如果是 SSL 3.0 或 TLS 1.0 等低版本协议,非常注意可能因为版本低引起一些握手失败的情况; 根据 extension 字段中的 server_name 字段判断是否支持SNI,存在则支持,否则不支持,对于定位握手失败或证书返回错误非常有用; 会话标识 session ID 是标准协议部分,如果没有建立过连接则对应值为空,不为空则说明之前建立过对应的连接并缓存; 会话记录 session ticke t是扩展协议部分,存在该字段说明协议支持 sesssion ticket,否则不支持,存在且值为空,说明之前未建立并缓存连接,存在且值不为空,说明有缓存连接。 4.server_hello 根据 TLS version 字段能够推测出服务器支持的协议的最高版本,版本不同可能造成握手失败; 基于 cipher_suite 信息判断出服务器优先支持的加密协议; 5.ceritficate 服务器配置并返回的证书链,根据证书信息并于服务器配置文件对比,判断请求与期望是否一致,如果不一致,是否返回的默认证书。 6.alert 告警信息 alert 会说明建立连接失败的原因即告警类型,对于定位问题非常重要。 5.HTTPS 性能与优化 5.1 HTTPS 性能损耗 前文讨论了 HTTPS 原理与优势:身份验证、信息加密与完整性校验等,且未对 TCP 和 HTTP 协议做任何修改。但通过增加新协议以实现更安全的通信必然需要付出代价,HTTPS 协议的性能损耗主要体现如下: 1.增加延时 分析前面的握手过程,一次完整的握手至少需要两端依次来回两次通信,至少增加延时2* RTT,利用会话缓存从而复用连接,延时也至少1* RTT*。 2.消耗较多的 CPU 资源 除数据传输之外,HTTPS 通信主要包括对对称加解密、非对称加解密(服务器主要采用私钥解密数据);压测 TS8 机型的单核 CPU:对称加密算法AES-CBC-256 吞吐量 600Mbps,非对称 RSA 私钥解密200次/s。不考虑其它软件层面的开销,10G 网卡为对称加密需要消耗 CPU 约17核,24核CPU最多接入 HTTPS 连接 4800; 静态节点当前10G 网卡的 TS8 机型的 HTTP 单机接入能力约为10w/s,如果将所有的 HTTP 连接变为HTTPS连接,则明显 RSA 的解密最先成为瓶颈。因此,RSA 的解密能力是当前困扰 HTTPS 接入的主要难题。 5.2 HTTPS 接入优化 1.CDN 接入 HTTPS 增加的延时主要是传输延时 RTT,RTT 的特点是节点越近延时越小,CDN 天然离用户最近,因此选择使用 CDN 作为 HTTPS 接入的入口,将能够极大减少接入延时。CDN 节点通过和业务服务器维持长连接、会话复用和链路质量优化等可控方法,极大减少 HTTPS 带来的延时。 2.会话缓存 (责任编辑:admin) |