在 Cloudflare 代理的 HTTPS 连接中,连接的建立过程涉及多个步骤,具体如下:
- 客户端与 Cloudflare 的连接
初始连接:当客户端发起 HTTPS 请求时,它首先与 Cloudflare 的边缘服务器建立连接。这个连接会进行 TLS 握手,协商加密算法和密钥。
TLS 握手:在这个阶段,客户端和 Cloudflare 之间会进行 TLS 握手,以确保数据的安全性。此时,Cloudflare 会向客户端提供其证书。 - Cloudflare 与源服务器的连接
到源服务器的连接:在客户端与 Cloudflare 建立连接后,Cloudflare 会将请求转发到源服务器。在这一过程中,Cloudflare 可能会与源服务器建立另一个 TLS 连接。
源服务器的证书:Cloudflare 会使用源服务器的证书来建立与源服务器的安全连接。如果源服务器支持 HTTPS,Cloudflare 会与其进行 TLS 握手。 - 连接的总结
客户端到 Cloudflare:客户端与 Cloudflare 之间的连接是加密的,数据在传输过程中是安全的。
Cloudflare 到源服务器:Cloudflare 与源服务器之间的连接也可以是加密的,这取决于源服务器的配置。 - 连接方式的选项
全加密模式:如果源服务器支持 HTTPS,Cloudflare 可以与源服务器之间的连接也是加密的,形成端到端的加密。
Flexible SSL:在这种模式下,Cloudflare 与客户端之间的连接是加密的,但 Cloudflare 与源服务器之间的连接是未加密的。这种模式不推荐使用,因为它降低了安全性。
Full SSL:Cloudflare 与客户端和源服务器之间的连接都是加密的。
总结
在 Cloudflare 代理的情况下,HTTPS 连接的建立并不是直接从源客户端到源服务器,而是分为两部分:客户端与 Cloudflare 之间的连接和 Cloudflare 与源服务器之间的连接。每个连接都可能进行各自的 TLS 握手,确保数据的安全性。