ic_ee

SSL握手原理以及好处

要建立 SSL/TLS 连接,必须进行以下过程:

在 TCP 层,客户端向服务器发送 SYN(同步)数据包。

服务器向客户端发送一个 SYN-ACK(同步确认)数据包。

服务器向服务器发送 ACK(确认)数据包。与 ACK 数据包一起,SSL/TLS 客户端还发送 client hello 包含加密算法(密码套件)和随机字节串的消息。

服务器以ServerHello 包含所选密码套件、会话 ID、数字证书和另一个随机字节串的消息作为响应 。如果需要,服务器会发出包含支持的证书类型和 CA 名称的客户端证书请求。推荐阅读:《网站上安装SSL证书有哪些优势》

客户端验证服务器的证书,然后发送一个 ClientKeyExchange – 用于创建加密密钥的随机字节字符串。如有必要,客户端还提供私钥和自己的客户端证书,或警告不存在证书。最后,客户端发送一条 ChangeCipherSpec 消息,表示从这里开始,将使用协商密钥和密码套件对通信进行加密。

SSL握手原理以及好处
SSL握手原理以及好处

服务器以ChangeCipherSpec 消息进行响应以 进行确认。

客户端和服务器现在可以在会话期间交换请求和响应。消息由密钥对称加密。

将 CDN 与 SSL/TLS 结合使用的好处

当安全套接字层客户端通过 CDN 连接到您的网站时, SSL 握手 发生在客户端和 CDN 代理服务器之间,而不是托管您网站的源服务器。

同时,CDN 和您的源之间打开了第二个加密通信通道。推荐阅读:《128位和256位SSL证书加密的区别》

使用 CDN 服务 SSL/TLS 流量具有以下优势:

更好的性能

CDN 减少了 您的用户所经历的往返时间 (RTT),因为他们与本地 CDN 代理服务器交互,而不是直接与您(可能位于更远的地方)源进行交互。

这对于建立传输层安全会话的速度具有显着优势,因为 TLS/SSL 握手涉及六次交换,相当于用户 RTT 的三倍。

例如,将 RTT 从 50 毫秒减少到 20 毫秒的 CDN 会将 TLS 握手时间从 150 毫秒(RTT 的三倍)减少到仅 60 毫秒(如下图所示)。

此外,CDN 使用优化设置,例如 False Start 和 Session Resumption 来提高性能。

将 CDN 与 SSL/TLS 结合使用可提高性能并减少 RTT

更好的安全性

使用 CDN 时,用户的 SSL/TLS 客户端连接到 CDN 的 SSL 证书,而不是您自己的证书。CDN 的证书通常是最高等级的,即 A+。

这意味着使用 CDN 将为您的用户提供最高级别的 SSL 安全性,而不管您的源服务器上使用的是什么证书。

此外,使用 CDN 是强制执行HTTP 严格传输安全 (HSTS) 的一种简单方法, HSTS 是一种安全机制,可轻松实现站点范围的 TLS 保护。推荐相关阅读:《怎样在虚拟主机中激活SSL数字证书》