HTTPS 站点的性能优化

Posted CTO老王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPS 站点的性能优化相关的知识,希望对你有一定的参考价值。


HTTPS 站中的几大难题

性能,包括:

  1. HTTPS需要多次握手,因此网络耗时变长,用户从HTTP跳转到HTTPS需要一些时间;

  2. HTTPS要做RSA校验,这会影响到设备性能;

  3. 所有CDN节点要支持HTTPS,而且需要有极其复杂的解决方案来面对DDoS的挑战。

其次,兼容性及周边,如:

  1. 页面里所有嵌入的资源都要改成HTTPS的,这些资源可能会来自不同的部门甚至不同的公司,包括图片、视频、表单等等,否则浏览器就会报警。

如何解决

  • 采用了统一接入层的架构,并配备管控平台。这样的设计解决了很多问题,比如证书分散且落地不安全、软件版本难以维护、配置过多、难以标准和自动化、VIP 过多等;

  • 以域名收敛的方式减少建连;

  • 采用 HSTS 技术去掉 80 到 443 的 302 跳转;

  • 通过 Session 复用来提高建连速度和降低服务器压力;

  • 对证书链进行优化以减少证书的传输量;

  • 摒弃传统的 RSA 算法,转而使用了最新的 ECDH 密钥交换算法,极大地提升了服务端的性能。

关注安全与兼容性

  • 采用了双证书模式,即SHA-1和SHA-256,最大限度地保证安全和兼容性;

  • 使用的是兼容性最宽泛的 OV 证书,全面支持单域名、多域名和泛域名,满足多种浏览器访问,保证最好的用户体验,当然代价也是费用较为昂贵;

  • 引入泛域名 SAN 证书。

密钥交换算法

常见的密钥交换算法有 RSA,ECDHE,DH,DHE 等算法。它们的特性如下:

  • RSA:算法实现简单,诞生于 1977 年,历史悠久,经过了长时间的破解测试,安全性高。缺点就是需要比较大的素数(目前常用的是 2048 位)来保证安全强度,很消耗 CPU 运算资源。RSA 是目前唯一一个既能用于密钥交换又能用于证书签名的算法。

  • DH:diffie-hellman 密钥交换算法,诞生时间比较早(1977 年),但是 1999 年才公开。缺点是比较消耗 CPU 性能。

  • ECDHE:使用椭圆曲线(ECC)的 DH 算法,优点是能用较小的素数(256 位)实现 RSA 相同的安全等级。缺点是算法实现复杂,用于密钥交换的历史不长,没有经过长时间的安全攻击测试。

  • ECDH:不支持 PFS,安全性低,同时无法实现 false start。

  • DHE:不支持 ECC。非常消耗 CPU 资源 。

建议优先支持 RSA 和 ECDH_RSA 密钥交换算法。原因是:

  • ECDHE 支持 ECC 加速,计算速度更快。支持 PFS,更加安全。支持 false start,用户访问速度更快。

  • 目前还有至少 20% 以上的客户端不支持 ECDHE,我们推荐使用 RSA 而不是 DH 或者 DHE,因为 DH 系列算法非常消耗 CPU(相当于要做两次 RSA 计算)。

更改其配置如下(参照 nginx Performance Tuning for SSL( http://dojo.techsamurais.com/?p=1384 ):

(c)2006-2024 SYSTEM All Rights Reserved IT常识