全站HTTPS没你想象的那么简单,电商网站兼顾安全与性能的踩坑小结!(4)
HTTPS 方案之性能优化篇 谈如何优化 HTTPS 的性能之前,我们先来看看整个 TLS 握手流程,如下图: 如图中所示,一个握手过程最坏的情况下,要分为八个步骤:
苏宁易购的全站 HTTPS 方案在性能优化方面做了很多事情,如 HSTS、Session resume、Ocsp stapling 的合理使用,如客户端 HTTPS 性能、HttpDNS 解决 DNS 攻击劫持等优化。 01、HSTS 的合理使用 Web 安全协议 HSTS 的作用是强制客户端(如浏览器)使用 HTTPS 与服务器创建连接。 优点是减少 HTTP 做 302 跳转的开销。302 跳转不仅暴露了用户的访问站点,也很容易被中间者劫持(降级劫持、中间人攻击),最重要是降低了访问速度(影响性能)。 缺点是 HSTS 在 max-age 过期时间内,在客户端是强制 HTTPS 的,服务端无法控制。 因此,当需要降级时,HTTPS 无法及时切换到 HTTP。当然你也可以通过手动动态去配置 max-age 的值,这样可以通过将 max-age 设置为 0 来达到降级效果。 还有 HSTS 是严格的 HTTPS,一旦网络证书错误时,网页将直接无法访问(用户无法选择忽视)。 02、Session resume 的合理使用 当用户端和客户端、客户端和服务端完成第一次 TLS 握手之后,第二次数据传输还需要 TLS 握手吗? 这里可以采用 Session 复用的方式。Session resume(会话复用),是 RFC 标准中早就定好的一个机制,HTTPS 最初发布时就已经涉及其中。 (编辑:ASP站长网) |