跳转到内容
搜索文档

加密模式

最后更新 查看 MarkdownAgent 设置

您 zone 的 SSL/TLS Encryption Mode 控制 Cloudflare 如何管理两个连接:访问者与 Cloudflare 之间的连接,以及 Cloudflare 与源站服务器之间的连接。

flowchart LR
    accTitle: SSL/TLS Encryption mode
    A[Visitor] <--Connection 1--> B((Cloudflare))<--Connection 2--> C[(Origin server)]

如果可能,Cloudflare 强烈建议使用 Full(完全)Full (strict)(完全(严格)) 模式,以防止恶意连接到达您的源站。

有关加密模式如何融入 Cloudflare SSL/TLS 保护整体架构的更多详情,请参阅概念

可用的加密模式

Automatic SSL/TLS(自动 SSL/TLS) 依赖为 SSL/TLS Recommender 开发的探测机制,确定网站应设置的最安全、最稳妥的加密模式。如果存在更安全的选项(基于您的源站证书或能力),Automatic SSL/TLS(自动 SSL/TLS) 会找到并应用到您的域名。Custom SSL/TLS(自定义 SSL/TLS) 选项则与当前手动设置加密模式的方式完全相同。

要了解各种加密模式如何影响缓存,请参阅SSL 设置对缓存行为的影响部分。

Automatic SSL/TLS(默认)

Automatic SSL/TLS 利用 SSL/TLS Recommender 开发的高级方法,为您的网站选择最安全的加密模式。Recommender 使用 Cloudflare-SSLDetector 用户代理爬取您的站点,该代理被 Cloudflare 识别为受信任 bot,并绕过 robots.txt 规则(除非规则专门针对它),以确保准确性。它通过 HTTP 和 HTTPS 从源服务器下载内容,然后应用内容相似性算法评估一致性。通过了解您当前的 SSL/TLS 加密模式并评估源站的证书和能力,Recommender 可以自动调整设置,为您的域名维持最高安全性。

自动升级是逐步应用的。Automatic SSL/TLS 从仅 1% 的流量开始升级域名。如果未发现问题,新的 SSL/TLS 加密模式将以 10% 的增量应用于流量,直到 100% 的流量使用推荐模式。如果在此过程中源站连接失败,Cloudflare 会中止升级,立即将流量回滚到之前的模式,并记录失败。一旦 100% 的流量成功升级且没有 TLS 相关错误,域名的 SSL/TLS 设置将永久更新。

Flexible → Full/Strict 过渡会格外谨慎处理,因为源站方案变更(HTTP → HTTPS)会改变缓存键。在这种情况下,升级过程可能会更慢,以便在恢复标准增量之前进行缓存预热。

其他详细信息

  • 扫描频率:自动扫描目前大约每月进行一次,但在某些情况下可能更频繁(例如配置更改或升级)。在以下情况下扫描会停止:

    • 站点已使用最安全的模式(例如 Full (strict)(完全(严格))),或
    • 您从自动模式切换到 Custom SSL/TLS(自定义 SSL/TLS)
  • 升级前的错误检查:为防止中断,Cloudflare 在升级 zone 的加密模式前会检查 5XX 错误(如 502503),并评估 HTTP 和 HTTPS 内容是否一致。

  • 升级通知:Cloudflare 发送每周摘要邮件,列出已升级的 zone。这些邮件目前仅发送给 Super Admin。

单个 zone 选择退出

如果您希望通过 API 让 zone 选择退出,可以在宽限期到期日或之前进行以下 API 调用。

Required API token permissions

At least one of the following token permissions is required:
  • Zone Settings Write
Edit zone settingbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/settings/ssl_automatic_mode" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"value": "custom"
	}'

多个 zone 选择退出

如果您希望让多个 zone 选择退出:

  1. 创建具有以下权限的 API 令牌:

    • Zone - Zone - Read
    • Zone - Zone Settings - Read
    • Zone - Zone Settings - Edit
  2. 发起 GET 请求获取 zone 列表(可按 account.id 过滤)。

    curl 'https://api.cloudflare.com/client/v4/zones?account.id=<ACCOUNT_ID>' \
    --header 'Authorization: Bearer <CF_API_TOKEN>' \
    --header 'Content-Type: application/json'
  3. 创建要退出的 zone ID 列表,每个 zone ID 单独一行(换行分隔),保存在 zones.txt 等文件中。

  4. 创建 opt-out-multiple-zones.sh bash 脚本并添加以下内容。将 zones.txt 放在同一目录中,或相应更新路径。

    opt-out-multiple-zones.shbash
    for zoneID in $(cat zone.txt); do
      printf "Opting out ${zoneID}:\n"
    
      curl --request PATCH \
    		--url https://api.cloudflare.com/client/v4/zones/$zoneID/settings/ssl_automatic_mode \
    		--header 'Authorization: Bearer <CF_API_TOKEN>' \
    		--header 'Content-Type: application/json' \
    		--data '{"value":"custom"}'
    
      printf "\n\n"
    done
  5. 打开命令行并运行:

    bash opt-out-multiple-zones.sh

Custom SSL/TLS(自定义 SSL/TLS)

要使用 Custom SSL/TLS(自定义 SSL/TLS),请选择自定义选项(如果您希望手动设置加密模式,而不是使用 Automatic SSL/TLS):

  • Off(无加密): 访客与 Cloudflare 之间或 Cloudflare 与源站之间的流量均不加密。全部为明文 HTTP。
  • Flexible(灵活): 访客到 Cloudflare 的流量可通过 HTTPS 加密,但 Cloudflare 到源站服务器的流量不加密。此模式常见于不支持 TLS 的源站,但建议在可能时升级源站配置。
  • Full: Cloudflare 连接源时匹配访客请求协议。如果访客使用 HTTP,Cloudflare 通过 HTTP 连接源;如果使用 HTTPS,Cloudflare 使用 HTTPS 且不验证源证书。此模式常见于使用自签名或其他无效证书的源。
  • Full (strict): 与 Full 模式类似,但增加了对源服务器证书的验证,证书可由 Let's Encrypt 等公共 CA 或 Cloudflare Origin CA 签发。
  • Strict(仅 SSL 源站拉取,SSL-Only Origin Pull): 无论访客到 Cloudflare 的连接使用 HTTP 还是 HTTPS,Cloudflare 始终通过 HTTPS 并验证证书连接到源站。

更新加密模式

要在仪表板中更改加密模式:

  1. 在 Cloudflare 仪表板中,前往 SSL/TLS Overview(SSL/TLS 概览) 页面。

    Go to Overview ↗
  2. 选择一种加密模式。

要使用 API 调整加密模式,请发送 PATCH 请求,URI 路径中的设置名称为 sslvalue 参数设置为您所需的值(offflexiblefullstrictorigin_pull)。

这篇文档对您有帮助吗?