BT宝塔面版通过NGINX开启TLSV1.3网站加速

BT宝塔面版通过NGINX开启TLSV1.3网站加速插图

对于网站的优化加速一直都是每个站长的追求,像虾皮路一样,对于各类可能对网站进行加速的方法,都愿意去尝试。今天给大家介绍一下BT宝塔面版通过NGINX开启TLSV1.3网站加速。

一、什么是TLSV1.3

SSL 是1994年网景公司提出,主要解决安全传输从0到1的过程,真正被大规模应用是1996年发布的 SSLv3,经过了几年的发展,在1999年被IETF纳入标准化,改名叫 TLS,其实本质是一样的,TLSv1.0 跟 SSLv3 没有太多差异,TLSv1.1 做了一些 bug 修复和支持更多的参数,TLSv1.2 基于 TLSv1.1 做了更多的扩展和算法上改进,从2008年到今年近10年的时间,TLSv1.3 在今年3月份被 IETF 讨论组评正式纳入标准化,8月初出了 RFC8446,但是 TLSv1.3 在2014年已经被提出来了,经历了4年时间的讨论和优化,但是因为 TLSv1.2 已经被大量应用,一些网络设备并不兼容之前提出的TLSv1.3草案,所以后来做了很多次优化,在第28个草案时才确定没有问题,正式纳入标准化。

二、TLSV1.3有什么好处

使用MAC对发送的报文进行完整性校验计算,先计算MAC再加密。在TLS 1.2中引入了更具有安全性的AEAD算法(同时完成加密和完整性校验)作为一个加密机制的备选选项 。

所有的身份认证都基于证书公钥体系完成。

支持0-RTT数据传输

废弃了3DES、RC4、AES-CBC等加密组件。废弃了SHA1、MD5等哈希算法。

不再允许对加密报文进行压缩、不再允许双方发起重协商,密钥的改变不再需要发送change_cipher_spec报文给对方。

握手阶段的报文可见明文大大减少。

安全性大大增加。

三、TLSV1.3与TLSV1.2有什么区别

1、TLS 1.2的握手框架

BT宝塔面版通过NGINX开启TLSV1.3网站加速插图(1)

第1步:整个连接是从客户端向服务器发送“Client Hello”消息开始。该消息由加密信息组成,与此同时客户端也会将本身支持的所有密码套件(Cipher Suite)列表发送过去,包括支持的协议和支持的密码套件,也包含一个随机值或随机字节串。

第2步:响应客户端的“客户端问候”消息,服务器以“Server Hello”消息响应。此消息包含服务器已从客户端提供的CipherSuite中选择的CipherSuite。服务器还会将其证书以及会话ID和另一个随机值一起发送。

第3步:客户端验证服务器发送的证书。验证完成后,它会发送一个随机字节字符串,也称为“预主密钥”,并使用服务器证书的公钥对其进行加密。
客户端向服务器发送“ChangeCipherSpec”消息,通过会话密钥的帮助让它知道它将切换到对称加密。与此同时,它还发送“客户端已完成”消息。

第4步:一旦服务器收到预主密钥,客户端和服务器都会生成一个主密钥以及会话密钥(临时密钥)。这些会话密钥将用于对称加密数据。在答复客户端的“更改密码规范”消息时,服务器执行相同操作并将其安全状态切换为对称加密。服务器通过发送“服务器已完成”消息来结束握手。
在客户端和服务器之间进行了两次往返(2-RTT)以完成握手。 平均而言,这需要0.25秒到0.5秒之间的时间。 但是,它可能需要更多取决于几个因素。 起初,半秒时间似乎不是很多时间,但这只是握手,数据传输还没有开始。

TLS1.3 在握手上做了优化,只需要一次时延往返就可以建立连接(1-RTT)

RTT(Round-Trip Time):往返时延。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。

2、TLS 1.3握手框架

BT宝塔面版通过NGINX开启TLSV1.3网站加速插图(2)

第1步,客户端发送 ClientHello 消息,该消息主要包括客户端支持的协议版本、DH 密钥交换参数列表 KeyShare;

第2步,服务端回复 ServerHello,包含选定的加密套件;发送证书给客户端;使用证书对应的私钥对握手消息签名,将结果发送给客户端;选用客户端提供的参数生成 ECDH 临时公钥,结合选定的 DH 参数计算出用于加密 HTTP 消息的共享密钥;服务端生成的临时公钥通过 KeyShare 消息发送给客户端;

第3步,客户端接收到 KeyShare 消息后,使用证书公钥进行签名验证,获取服务器端的 ECDH 临时公钥,生成会话所需要的共享密钥;

第4步,双方使用生成的共享密钥对消息加密传输,保证消息安全。

3、TLS1.2与1.3握手区别

TLS1.3的握手流程于TLS1.2最大的区别,就在于TLS1.3提前走了加密,TLS1.2需要在双方明文交换了key exchange信息之后才会走加密通道,而TLS1.3在sever端发送玩ServerHello信息之后就会走加密通道,就连证书信息也是加了密的。

下图通过Wireshake抓包,可以清楚的看到TLS1.3只需要1-RTT就可以建立连接

BT宝塔面版通过NGINX开启TLSV1.3网站加速插图(3)

Web性能的一个重要组成部分是传输延迟。简而言之,传输延迟是指消息通过网络从一方传送到另一方所需的时间。较低的延迟意味着更快的网页和更具响应性的API; 当谈到响应性时,每毫秒都很重要。TLS1.3极大的缩短了建立连接所需要的时间。
TLS 1.3 改进增加了“不额外增加网络延时”模式(0-RTT)。对于近期访问过的站点,可以直接发送有用的数据,而不需要经过握手。
TLS 1.2 中通过 1 个 RTT 即可完成会话恢复,TLS 1.3在回复会话时只需要0-RTT。

4、TLS 1.3 0-RTT

BT宝塔面版通过NGINX开启TLSV1.3网站加速插图(4)

当一个支持 TLS 1.3 的客户端连接到同样支持 TLS 1.3 的服务器时, 客户端会将收到服务器发送过来的 Ticket 通过相关计算,一起组成新的预共享密钥,PSK (PreSharedKey)。客户端会将该 PSK 缓存在本地,在会话恢复时在 Client Hello 上带上 PSK 扩展,同时通过之前客户端发送的完成(finished)计算出恢复密钥 (Resumption Secret)通过该密钥加密数据发送给服务器。服务器会从会话 Ticket 中算出 PSK,使用它来解密刚才发过来的加密数据。至此完成了该 0-RTT 会话恢复的过程。

说了这么多,貌似很厉害,但是也比较复杂。总的结论来说,就是TLSV1.3比之前的版本更加安全,同时访问握手次数也优化了,因此可以带来更快更安全的体验。

四、怎样开启TLSV1.3网站加速

这里虾皮路以BT宝塔面版为例,毕竟国内用的人非常多。

1、打开BT宝塔面版切换NGINX版本

首先确认自己的NGINX版本是多少?这里要申明一下,至少NGINX版本要求达到1.15或以上。如果没有的话,则进行版本切换升级。

BT宝塔面版通过NGINX开启TLSV1.3网站加速插图(5)

一般这样切换的话会导致网站几分钟不能访问,安装时间如果配置不是太差的话,5分钟内肯定安装切换完成了。

2、修改网站配置文件

打开网站-配置-配置文件,将原有的代码改为如下代码:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;

类似如下图

BT宝塔面版通过NGINX开启TLSV1.3网站加速插图(6)

替换后,保存,然后重启NGINX。

五、检测TLSv1.3安装效果

可以通过 https://myssl.com 进行检测,比如虾皮路的检测结果

BT宝塔面版通过NGINX开启TLSV1.3网站加速插图(7)
BT宝塔面版通过NGINX开启TLSV1.3网站加速插图(8)

地址为:https://myssl.com/www.shopee6.com?domain=www.shopee6.com&status=success

注意:如果BT宝塔面版下的站点不止一个,那么就要将站点下的所有代码都改一次。

以上就是虾皮路介绍的BT宝塔面版通过NGINX开启TLSV1.3网站加速,虽然不说加速马上明显,但是每个优化步骤加起来,那么就可以带来不错的效果了。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

虾皮路版权所有,未经允许不得转载:虾皮路 » BT宝塔面版通过NGINX开启TLSV1.3网站加速

分享到: 更多 (0)
坚持下去不容易,打个赏呗

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活