详解全站 HTTPS 访问优化

HTTPS 协议就是 HTTP+SSL/TLS,即在 HTTP 基础上加入 SSL /TLS 层,提供了内容加密、身份认证和数据完整性3大功能,目的就是为了加密数据,用于安全的数据传输。

HTTPS 通过3大功能增加了数据传输安全,但同时也给Web性能优化带来了新的挑战。

  1. · HTTPS降低用户访问速度(需多次握手)
  2. · 网站改用 HTTPS 以后,由 HTTP 跳到 HTTPS 的方式增加了用户访问(多数网站采用 301、302 跳
  3. · HTTPS 涉及到的安全算法会消耗 CPU 资源,需要增加服务器资源(https 访问过程需要加解密

HTTP跳转至HTTPS交互过程解析

 

又拍云采用了 HSTSHTTP Strict Transport Security)技术,启用HSTS后,将保证浏览器始终连接到网站的 HTTPS 加密版本。

TLS握手优化

在传输应用数据之前,客户端必须与服务端协商密钥、加密算法等信息,服务端还要把自己的证书发给客户端表明其身份,这些环节构成 TLS 握手过程。

TLS False Start 功能

又拍云采用了 False Start (抢先开始)技术,浏览器在与服务器完成 TLS 握手前,就开始发送请求数据,服务器在收到这些数据后,完成 TLS 握手的同时,开始发送响应数据。


开启 False Start 功能后,数据传输时间讲进一步缩短。

Session Identifier(会话标识符)复用

如果用户的一个业务请求包含了多条的加密流,客户端与服务器将会反复握手,必定会导致更多的时间损耗。或者某些特殊情况导致了对话突然中断,双方就需要重新握手,增加了用户访问时间。

因此又拍云提供了 Session Identifier(会话标识符)复用功能

因此又可以进一步降低客户端的访问时间,提升用户的访问体验。又拍云已默认开启此功能,无需特殊配置,抓包如下图所示:


开启OSCP Stapling,提高TLS握手效率

采用OCSP Stapling ,提升 HTTPS 性能。服务端主动获取 OCSP 查询结果并随着证书一起发送给客户端,从而客户端可直接通过 Web Server 验证证书,提高 TLS 握手效率。

由又拍云服务器模拟浏览器向 CA 发起请求,并将带有 CA 机构签名的 OCSP 响应保存到本地,然后在与客户端握手阶段,将 OCSP 响应下发给浏览器,省去浏览器的在线验证过程。由于浏览器不需要直接向 CA 站点查询证书状态,这个功能对访问速度的提升非常明显。

完全前向加密PFS,保护用户数据,预防私钥泄漏

非对称加密算法 RSA,包含了公钥、私钥,其中私钥是保密不对外公开的,由于此算法既可以用于加密也可以用于签名,所以用途甚广,但是还是会遇到一些问题:

所以为了防止上述现象发生,我们必须保护好自己的私钥。

但如果私钥确实被泄漏了,那我们改如何补救呢?那就需要PFSperfect forward secrecy)完全前向保密功能,此功能用于客户端与服务器交换对称密钥,起到前向保密的作用,也即就算私钥被泄漏,黑客也无法破解先前已加密的数据。

实现此功能需要服务器支持以下算法和签名组合:

又拍云已默认支持上述组合,无需特殊配置,抓包如下图所示:

 

HTTP/2协议支持

HTTP/2 是在 HTTPS 协议的基础上实现的,所以只要使用又拍云 HTTPS 加速服务的域名,都可免费享受 HTTP/2 服务,无需做任何特殊配置。全平台支持默认开启 HTTP/2.0 , 无缝兼容各浏览器及服务器。

推荐阅读:

 又拍云微信小程序SDK,一 键实现HTTPS部署

一文读懂 HTTP/2 特性