Cloudflare的自动SSL/TLS设置官方指南

尽管推出时间比预期稍长,但我们的首要目标是实现透明且无任何网站宕机风险的自动配置。额外的时间使我们得以在增强安全性的同时,确保网站功能的无缝衔接,特别是考虑到源服务器的安全配置和能力超出了Cloudflare的直接控制范围。新的自动SSL/TLS设置将通过使用SSL/TLS推荐器,最大化并简化Cloudflare与源服务器通信所采用的加密模式

我们首次讨论这一进程是在2014年:当时,安全连接的配置颇为复杂,成本高昂,且需要专业知识才能正确设置。为了缓解这些难题,Cloudflare推出了通用SSL,使网络资产能够获得免费SSL/TLS证书,从而增强浏览器与Cloudflare之间连接的安全性。

这一举措效果显著且操作简便,因为Cloudflare能够管理来自入站浏览器的证书和连接安全。得益于此项工作,当时整个互联网上加密的HTTPS连接数量翻倍。然而,从Cloudflare到源服务器的连接仍需手动配置加密模式,以告知Cloudflare源服务器的能力。

今天,我们欣喜地开启通用SSL的续篇,让Cloudflare与源服务器之间的安全连接对所有人而言都变得自动化且简易。

源服务器连接安全的历史

确保互联网上流动的更多字节自动加密,将有效增强抵御第三方拦截、限制和审查互联网流量的屏障。

通常,通信双方(通常是客户端和服务器)使用TLS协议建立安全连接。简要分解如下:

  • 客户端向服务器通告其支持的加密参数列表(连同一些元数据)。
  • 服务器回应其选择的加密参数偏好,同时发送数字证书,以便客户端验证其身份。
  • 客户端验证服务器身份,确认服务器确为其所声称的身份。
  • 双方就会话的对称密钥达成一致,用于加密和解密连接上传输的所有内容。

由于Cloudflare作为客户端与我们客户源服务器之间的中介,建立了两个独立的TLS连接。一个是用户浏览器与我们网络之间的连接,另一个是我们网络与源服务器之间的连接。这使我们能够独立管理和优化两个连接的安全性和性能。

与客户端和Cloudflare之间的连接安全不同,源服务器的安全能力不在我们的直接控制之下。例如,我们可以管理客户端与Cloudflare之间的证书(用于验证身份并提供建立加密连接的上下文的文件),因为在该连接中我们的职责是向客户端提供证书;但在与源服务器通信时,Cloudflare本身即为客户端。

客户需要在主机上获取并配置源证书,然后配置Cloudflare以在开启连接时预期从源服务器接收新证书。需要在多个不同位置手动配置连接安全需要付出努力,且容易出现人为错误。

这一问题在最初的通用SSL博客中已有讨论:

对于之前未使用SSL的网站,我们将默认采用我们的灵活SSL模式,这意味着从浏览器到Cloudflare的流量将被加密,但从Cloudflare到网站源服务器的流量则不然。我们强烈建议网站所有者在网络服务器上安装证书,以便我们加密到源服务器的流量……一旦您在网络服务器上安装了证书,您可以启用完全或严格SSL模式,这些模式将加密源流量并提供更高水平的安全性。

多年来,Cloudflare推出了众多产品,帮助客户配置Cloudflare与源服务器的通信方式。这些产品包括帮助客户获取证书以验证源服务器身份和加密能力的证书颁发机构、确保只有来自Cloudflare的HTTPS(加密)请求才能获得源服务器响应的认证源拉取,以及可配置为主动建立到最近Cloudflare数据中心的私密安全隧道的Cloudflare隧道。此外,ACME协议及其对应的Certbot工具使得在客户源服务器上获取和管理公信证书变得前所未有的简单。尽管这些技术帮助客户配置Cloudflare与源服务器的通信方式,但仍需在源服务器和Cloudflare设置上进行手动配置更改。

确保源服务器上的证书配置得当,并告知Cloudflare我们应如何与源服务器通信,可能会令人焦虑,因为配置错误可能导致宕机,如果某些内容未正确部署或配置。

为了简化这一过程,并帮助识别客户可以使用的最高安全选项而无配置错误风险,**Cloudflare于2021年推出了SSL/TLS推荐器。**推荐器通过使用不同的SSL/TLS设置探测客户源服务器,为网络资产的SSL/TLS加密模式是否可以改进提供建议。推荐器已投入使用三年,始终为Cloudflare的客户提供高质量的源服务器安全建议。

SSL/TLS推荐器系统是我们今日宣布的自动源连接服务的核心大脑。

SSL/TLS推荐器如何运作?

推荐器通过主动比较使用不同SSL/TLS模式下载的网页内容,判断是否安全且无风险地更新Cloudflare连接到源服务器所使用的模式

Cloudflare目前提供五种SSL/TLS模式:

  1. 关闭:浏览器与Cloudflare之间或Cloudflare与源服务器之间不使用加密,均为明文HTTP。
  2. 灵活:从浏览器到Cloudflare的流量可通过HTTPS加密,但从Cloudflare到源服务器的流量则不然。此模式常见于不支持TLS的源服务器,尽管我们建议尽可能升级源服务器配置。升级指南可在此获取。
  3. 完全:Cloudflare在连接到源服务器时匹配浏览器请求协议。如果浏览器使用HTTP,Cloudflare通过HTTP连接到源服务器;如果使用HTTPS,Cloudflare使用HTTPS但不验证源服务器的证书。此模式常见于使用自签名或其他无效证书的源服务器。
  4. 完全(严格):类似于完全模式,但增加了对源服务器证书的验证,证书可由公共CA(如Let’s Encrypt)或Cloudflare源CA颁发。
  5. 严格(仅SSL源拉取):无论浏览器到Cloudflare的连接使用HTTP还是HTTPS,Cloudflare始终通过HTTPS连接到源服务器并进行证书验证。
访客使用HTTP 访客使用HTTPS
关闭 到源服务器使用HTTP 到源服务器使用HTTP
灵活 到源服务器使用HTTP 到源服务器使用HTTP
完全 到源服务器使用HTTP 到源服务器使用HTTPS但不验证证书
完全(严格) 到源服务器使用HTTP 到源服务器使用HTTPS并验证证书
严格(仅SSL源拉取) 到源服务器使用HTTPS并验证证书 到源服务器使用HTTPS并验证证书

SSL/TLS推荐器通过爬取客户网站并收集页面上的链接(如同任何网络爬虫)进行工作。推荐器通过HTTP和HTTPS下载内容,发出GET请求以避免修改服务器资源。然后,它使用改编自研究论文《深入探讨HTTP/S上的网页内容可用性和一致性》(TMA会议2020)的相似性算法,判断内容是否匹配。如果内容匹配,推荐器将判断是否可以在无配置错误风险的情况下提升SSL/TLS模式

目前,推荐结果通过电子邮件发送给客户。

在提供安全建议时,推荐器倾向于维护当前网站功能,以避免破坏和可用性问题。如果网站无法正常运行、屏蔽所有机器人,或具有特定于SSL/TLS的页面规则或配置规则,推荐器可能无法完成扫描并提供建议。它的设计旨在最大化域名安全,但不会帮助解决网站或域名功能问题。

爬虫使用用户代理“Cloudflare-SSLDetector”,并被列入Cloudflare已知的良好机器人列表中。它忽略robots.txt(除非规则专门针对其用户代理),以确保提供准确的建议。

通过HTTP和HTTPS从您的源服务器下载内容并比较内容时,推荐器了解您网站当前使用的SSL/TLS加密模式,以及如果遵循建议可能对网站功能带来的风险。

使用SSL/TLS推荐器自动管理SSL/TLS设置

此前,注册SSL/TLS推荐器为客户提供了良好的体验,但仅在区域当前的SSL/TLS模式可以更新时通过电子邮件提供建议。对Cloudflare而言,这是一个积极信号,表明客户希望其网站与源服务器之间拥有更安全的连接——超过200万个域名已启用SSL/TLS推荐器。然而,我们发现相当多的用户未完成下一步操作,即点击按钮告知Cloudflare我们可以通过升级后的设置进行通信。系统提供的建议中只有30%被采纳。

由于系统设计旨在提升安全性同时避免任何破坏性变化,我们希望为客户提供一个选项,允许推荐器帮助升级其网站安全性,而无需客户进一步手动操作。因此,我们推出了一种在Cloudflare上管理SSL/TLS配置的新选项:自动SSL/TLS。

自动SSL/TLS使用SSL/TLS推荐器来判断对网站而言最安全且最合适的加密模式。如果您的网站有更安全的选项(基于您的源证书或能力),自动SSL/TLS将找到并为您的域名应用该选项。另一个选项,自定义SSL/TLS,将完全按照当前设置加密模式的方式运作。如果您知道自己想要的设置,只需使用自定义SSL/TLS选择即可,我们将按您的选择执行。

自动SSL/TLS目前旨在服务于整个网站,这通常适用于拥有单一源服务器的网站。对于担心其设置更为复杂、涉及多个具有不同安全能力的源服务器的用户,请放心。自动SSL/TLS仍将避免破坏网站功能,通过寻找适用于服务网站流量所有源服务器的最佳设置。

如果客户希望细分与服务其域名的众多源服务器通信所使用的SSL/TLS模式,可以通过使用配置规则实现。这些规则允许您根据路径或子域名甚至IP地址设置Cloudflare应遵循的更精确模式,以根据您期望的规则标准最大化域名的安全性。如果您的网站在配置规则或页面规则中使用特定于SSL/TLS的设置,这些设置将覆盖区域范围的自动和自定义设置。

自动SSL/TLS的目标是简化和最大化Cloudflare上客户的源服务器安全。我们希望这成为Cloudflare上所有网站的新默认设置,但我们理解并非所有人都希望采用这一新默认设置,我们将尊重您关于Cloudflare应如何与您的源服务器通信的决定。如果您阻止推荐器完成其爬取,源服务器无法正常运行或无法被爬取,或者您希望退出此默认设置并继续使用您当前使用的加密模式,我们将为您提供简便的方式告知我们您的偏好。

如何加入自动SSL/TLS

为了默认提升所有人的安全设置,我们对Cloudflare如何为所有区域配置SSL/TLS级别做出以下默认更改:

2024年8月8日开始,已启用SSL/TLS推荐器的网站将默认启用自动SSL/TLS设置。启用并不意味着推荐器会立即开始扫描并应用新设置。首次扫描开始并应用推荐设置前将有一个月的宽限期。企业(ENT)客户将获得六周的宽限期。对于非企业客户,源服务器扫描将从2024年9月9日开始安排,对于启用SSL推荐器的ENT客户则从9月23日开始。这将为客户提供选择退出的机会,通过移除自动SSL/TLS并选择他们希望使用的自定义模式。

此外,在9月的第二周,所有新注册Cloudflare的区域将开始默认看到自动SSL/TLS设置已启用。

2024年9月16日开始,剩余的免费和专业客户将开始看到新的自动SSL/TLS设置。他们也将有一个月的宽限期,在扫描生效前选择退出。

在新自动SSL/TLS设置应用队列中的客户将收到一封电子邮件,告知他们迁移的日期,同时仪表板上也将显示提及此过渡的横幅。如果他们不希望Cloudflare更改其配置,以下将概述退出此迁移的流程。

在成功迁移免费和专业版客户后,我们将以类似节奏继续迁移商业版和企业版客户。这些客户将在迁移队列中时收到电子邮件通知和仪表板信息。

自动SSL/TLS设置不会影响已处于严格或完全(严格)模式的用户,也不会影响已选择退出的网站。

选择退出

有人可能出于多种原因希望为其网站配置低于最佳的安全设置。一些人可能希望为测试目的或调试某些行为设置较低的安全设置。无论原因何在,在迁移过程中选择退出自动SSL/TLS设置的选项在仪表板和API中均可用。

要退出,只需在仪表板中选择自定义SSL/TLS(而不是已启用的自动SSL/TLS),我们将继续使用您在迁移前使用的先前设置的加密模式。自动和自定义SSL/TLS模式可在仪表板SSL/TLS部分的概述选项卡中找到。要启用您的首选模式,请选择配置

如果您希望通过API退出,可以在宽限期到期日期之前或当天进行此API调用。

    curl --request PATCH \
        --url https://api.cloudflare.com/client/v4/zones/<insert_zone_tag_here>/settings/ssl_automatic_mode \
        --header 'Authorization: Bearer <insert_api_token_here>' \
        --header 'Content-Type: application/json' \
        --data '{"value":"custom"}'

如果触发退出,当前配置的SSL/TLS设置将不会有任何更改。您也可以随时通过前往仪表板的SSL/TLS部分并选择您想要的自定义设置来更改安全级别(类似于目前的方式)。

如果您稍后希望加入自动SSL/TLS,可以通过将设置从自定义更改为自动来实现。

大佬好专业,绑定大佬

:smiling_face:谢谢

(帖子已被作者删除)

不玩,玩不来 :joy: