其他答案是正确的,实际上 Cloudflare 无法在不引入此类安全风险的情况下有效地提供其完整服务。
粗略地说,Cloudflare 做了两件事:
他们镜像您的网站,并且可以从他们自己的服务器(他们的 CDN)提供服务。这样,如果您的网站受到 DDoS 攻击,他们可以吸收流量,合法用户仍然可以访问他们的服务并查看您的网站。
他们进行应用程序级流量分析以检测攻击和恶意流量。这需要检查 HTTP 流量的明文。
显然,第二个要求 Cloudflare 能够看到您的流量。
第一个还需要 Cloudflare 能够伪装成您的站点,因此您必须信任它们。
现在,原则上 Cloudflare 可能能够实现镜像站点的一些好处,而不需要对它们有太多的信任。特别是,可以想象这样一种方案,您的站点的顶级页面仍由您的服务器提供,但图像、CSS 样式表、IFRAMED 子页面、动态数据和其他信息等子资源则由 Cloudflare 的镜像提供。也许您网站的顶级页面可以提供很长的生存时间,因此可以缓存很长时间。
这样,在不远的过去访问过您网站的用户可能仍会缓存顶级页面,然后其余内容将从 Cloudflare 的服务器提供。这使用户仍然可以在浏览器地址栏中看到锁定图标和您的站点地址,并且 Cloudflare 不需要您的 SSL 私钥。
然而,这种方案有很大的局限性和巨大的缺点。如果您的网站遭到 DDoS 攻击,以前从未访问过您的网站的用户将无法访问它。更糟糕的是,您必须更改所有页面,以便修改每个资源的 URL 以指向 Cloudflare 的网络而不是您的服务器。这是一个巨大的负担,并且会使站点运营商难以采用 Cloudflare 的保护。Cloudflare 的一大吸引力在于它易于设置:您只需在 DNS 配置文件中更改一行,就可以开始使用。我提到的那种方法失去了所有这些优势。
原则上,您可以想象我概述的那种方案可能对某些有限类别的 AJAX 重度网站有用,它们只有一个页面,其中包含一堆 Javascript,然后通过 AJAX 调用加载其所有资源. 但是,这种网站相对较少,通常由精通技术的开发人员构建,他们可能无论如何都不需要像 Cloudflare 这样的公司的服务——他们可能有自己的方式来提供安全和 DDoS 保护。
因此,出于所有这些原因,我概述的那种替代方案在实践中可能没有用或没有吸引力。