新网站接入 Cloudflare 后,我会先做这 8 项配置

大家好!

最近一年我做了一些网站,CDN 肯定会优先接入 Cloudflare。

Cloudflare 不只是 CDN,它还可以帮我们托管 DNS、自动签发 SSL 证书、抵挡一部分恶意流量、缓存静态资源。对于个人开发者来说,免费版已经够用。

但是把域名换到 Cloudflare,只代表“接入成功”,不代表配置已经完成。

默认配置比较保守,有些功能需要手动开启;有些功能看起来能提速,开错了反而会导致登录失效、接口数据错乱,甚至产生重定向循环。

本文分享我接入一个新网站后会先检查的 8 项配置。不是标准答案,主要适用于有独立前后端、API、登录和支付功能的网站,大家可以根据自己的项目调整。

检查 DNS 记录

接入之后,我会先打开 DNS -> 记录,检查 Cloudflare 自动扫描出来的记录。

常见的网站记录主要有:

  • 根域名 @ 指向服务器 IP,使用 A 记录
  • www 指向根域名,使用 CNAME 记录
  • 需要经过 Cloudflare 的网站记录开启代理,也就是橙色小云朵
  • 邮箱、域名验证等记录保持“仅 DNS”,不要随便开启代理

修改完成后,我会分别访问:https://example.com、https://www.example.com

确认两个地址都能正常打开,然后再决定统一使用根域名还是 www

我一般只保留一个主域名,另一个使用 规则 -> 页面规则 -> 重定向规则 做 301 跳转。这样可以避免同一份内容出现两个网址,对 SEO 也更友好。

SSL/TLS 改成 完全 (严格)

这是我最先修改的安全配置。打开 SSL/TLS -> 概述 -> 配置,将加密模式设置为:完全(严格)

这个模式会同时加密两段连接:用户浏览器 -> Cloudflare -> 源站服务器。并且 Cloudflare 会验证源站证书是否有效。

如果源站还没有证书,可以使用 Let’s Encrypt,也可以在 SSL/TLS -> 源服务器 申请 Cloudflare Origin CA 证书。

需要注意,Origin CA 证书主要用于 Cloudflare 到源站之间的连接。如果暂停 Cloudflare 代理,浏览器直接访问源站时候证书不会被信任。

强制 HTTPS

打开 SSL/TLS -> 边缘证书,我会检查下面几个选项:

  1. 始终使用 HTTPS:开启
  2. 自动 HTTPS 重写:开启
  3. 最低 TLS 版本:TLS 1.2
  4. TLS 1.3:开启

始终使用 HTTPS 会把 HTTP 请求跳转到 HTTPS。

自动 HTTPS 重写 可以修复一部分页面里的 HTTP 资源,减少 Mixed Content,也就是“页面已经是 HTTPS,但图片或脚本仍然是 HTTP”的问题。

开启 DNSSEC

打开 DNS -> 设置 -> DNSSEC,启用 DNSSEC。

DNSSEC 的作用不是给网站加速,而是验证 DNS 返回结果没有被篡改。

开启压缩和新协议

打开 速度 -> 设置。将建议的配置项一键开启,涉及图片优化、内容优化、协议优化。

配置缓存

Cloudflare 默认会缓存图片、CSS、JavaScript、字体等静态资源。对于刚接入的网站,我不会马上缓存所有页面。

原因很简单:网站里经常有登录状态、购物车、用户中心、管理后台和动态接口。如果把 HTML 或 API 缓存错了,用户可能看到别人的数据。

缓存 -> Cache Rules 中明确绕过动态路径,例如:

1
2
3
4
/api/*
/admin/*
/login/*
/checkout/*

开启基础安全防护

打开 安全性 -> 设置,我会先检查下面几个功能:

  • Bot Fight 模式:普通内容站可以开启,有 API 时先观察
  • 速率限制规则:给登录、注册、发送验证码和高成本接口限速
  • 安全级别:先保持默认,遇到攻击时再调整

限速规则不要一上来就覆盖整个网站。我一般只保护容易被滥用的接口,例如:

1
2
3
4
POST /api/login
POST /api/register
POST /api/send-code
POST /api/generate

Bot Fight Mode 也不是开启以后就不用管了。搜索引擎、监控服务、App API 都可能被误判,开启后需要观察 安全性 -> 分析 -> 事件 ,发现误伤再调整规则。

隐藏源站并开启告警

Cloudflare 能不能保护源站,有一个前提:别人不能绕过 Cloudflare 直接访问服务器 IP。

如果源站 IP 已经暴露,即使网站记录开启了代理,攻击者依然可以直接请求源站。

我会做这些处理:

  1. 删除不需要公开的源站 DNS 记录
  2. 检查历史 DNS、邮件记录和其他子域名是否泄露源站 IP
  3. 在服务器防火墙中,仅允许 Cloudflare 官方 IP 段访问 80 和 443 端口
  4. 应用读取真实用户 IP 时,使用并校验 Cloudflare 传递的请求头
  5. 开启 Cloudflare 的证书、流量和安全事件通知

第 3 项操作之前,一定要先保留 SSH 管理入口,并确认 Cloudflare IP 段完整,否则很容易把自己挡在服务器外面。Cloudflare 的 IP 段会更新,不建议从网上随便复制一份长期不管,应该以官方列表为准。

Cloudflare IP 地址范围: https://www.cloudflare.com/zh-cn/ips/

我的最终配置清单

最后总结一下,新网站接入 Cloudflare 后,我会依次完成:

  • 检查 DNS 记录,只代理网站流量
  • SSL/TLS 使用 完全 (严格)
  • 强制 HTTPS,最低 TLS 使用 1.2
  • 开启 DNSSEC
  • 开启 HTTP/2 和 HTTP/3
  • 缓存静态资源,绕过动态接口
  • 开启 Bot 和接口限速
  • 隐藏源站 IP,开启必要告警

配置完成后,还需要用无痕窗口测试首页、登录、退出、支付回调、文件上传、API、WebSocket 和 301 跳转。

Cloudflare 不是开启的功能越多越好。先保证链路正确,再做安全和性能优化,每次只改一两项,出问题时也更容易定位。

总结

CDN 只是网站架构中的一层,源站证书、应用鉴权、缓存策略、数据库安全和备份仍然需要自己负责。不要因为接入了 Cloudflare,就认为网站已经绝对安全。

以上就是我接入新网站后会先做的配置,希望能对大家有点帮助,欢迎留言一起交流。

公众号