返回设置
Cloudflare 配置教程
Tokens

Cloudflare 配置教程:API Token 权限 + 域名托管

适用对象:第一次使用 CloudSite、还没有配置过 Cloudflare 的管理员。 目标:让 CloudSite 能代替你在 Cloudflare 上创建 Pages 项目、上传站点文件、把自定义域名绑定到站点。

预计耗时:创建 Token 约 2 分钟;域名托管 5 分钟开始生效(NS 完全生效通常 5 分钟–24 小时);CloudSite 内配置约 1 分钟。

文中的界面示意图为文字版示意,Cloudflare 改版频繁,实际按钮文案可能略有差异(例如 Add a site / Add a domain),按相同位置的入口操作即可。

应用内入口:登录 CloudSite 后打开 /guide/cloudflare,或在「设置 → Cloudflare 授权」卡片点击「配置教程」。


目录

  1. 先理清三个概念
  2. 把域名托管到 Cloudflare
  3. 创建 API Token(最小权限)
  4. 取得 Account ID
  5. 在 CloudSite 里填写并验证
  6. 在 CloudSite 里绑定域名
  7. 排错速查表
  8. 安全与日常维护
  9. 附录:权限速查 / 命令行自检

1. 先理清三个概念

名词是什么在哪里看
域名 / Zone你在注册商买的域名,例如 example.com。托管到 Cloudflare 后,Cloudflare 成为它的 DNS 服务商。Cloudflare 首页 → Websites
账户 / AccountCloudflare 里的一个"工作空间",域名、Pages 项目都挂在它下面。Account ID 是 32 位十六进制字符串。控制台 URL 或 Workers & Pages 概览页
API Token给程序用的临时钥匙,只能做你授权的操作。CloudSite 用它创建 Pages 项目、上传文件、写 DNS。My Profile → API Tokens

整体链路:

                     ┌──────────────────────────────────────────┐
  你的电脑/浏览器 ──▶ │ CloudSite(本机或服务器)                  │
                     └───────────────┬──────────────────────────┘
                                     │ HTTPS + API Token
                                     ▼
                     ┌──────────────────────────────────────────┐
                     │ Cloudflare API                            │
                     │  ├─ Pages:建项目 / 上传部署 / 绑域名      │
                     │  └─ DNS:写 CNAME 指向 <project>.pages.dev │
                     └───────────────┬──────────────────────────┘
                                     │
   访客 ──▶ https://example.com ──▶ Cloudflare(代理 + 证书)──▶ Pages

两条独立的前置条件,缺一不可:

  1. 域名已托管到 Cloudflare(NS 指向 Cloudflare,状态 Active)——绑定自定义域名需要;
  2. 有可用的 API Token + Account ID——调用 Cloudflare API 需要。

只上传模板、不绑定自己域名的话,用 Cloudflare 分配的 xxx.pages.dev 也能访问,第 2 节可以稍后再做。但部署到 Pages 仍然需要 Token。


2. 把域名托管到 Cloudflare

如果你已经有域名在 Cloudflare(Websites 列表里状态是 Active),直接跳到 第 3 节。

2.1 准备

  • 一个已经注册、能正常解析的域名(example.com 这种裸域);
  • 域名注册商的控制台账号密码(阿里云 / 腾讯云 / GoDaddy / Namecheap 等);
  • 如果域名原来做过邮箱(MX)、验证(TXT)等记录,切换前先确认这些记录已导入 Cloudflare,否则切完 NS 邮箱可能收不到信。

域名还没有?先在任意注册商购买(.com 首年通常几十元)。Cloudflare 本身不负责卖新域名(Registrar 只支持转入已托管域名)。

2.2 在 Cloudflare 添加站点

  1. 登录 https://dash.cloudflare.com/;
  2. 首页右上角点击 Add a site(新版叫 Add a domain);
  3. 输入裸域:example.com。
    • ❌ 不要填 https://example.com
    • ❌ 不要填 www.example.com(www 是子域,后面由 CloudSite 绑定)
  4. 选择套餐:Free(CloudSite 的全部功能在免费套餐可用);
  5. Cloudflare 会自动扫描现有 DNS 记录并列出,先逐条检查,尤其是 MX、TXT(SPF/DKIM/验证);
  6. 页面会给出两条专属 Nameserver,例如:
┌──────────────────────────────────────────────────────────────┐
│  Complete your nameserver setup                              │
├──────────────────────────────────────────────────────────────┤
│  Replace your current nameservers with:                      │
│                                                              │
│    ada.ns.cloudflare.com          (复制)                     │
│    bob.ns.cloudflare.com          (复制)                     │
│                                                              │
│  ⓘ 两条都要改,顺序无所谓;不要只改一条。                    │
└──────────────────────────────────────────────────────────────┘

每个账号分配的两条 NS 是固定的(不是每个域名随机),照抄即可。 示意图里的名字只是举例,以你页面显示的为准。

2.3 到注册商修改 NS

登录你的域名注册商,把 DNS 服务器 / Nameservers 改成上一步的两条 Cloudflare NS:

注册商操作路径(大致)
阿里云控制台 → 域名 → 域名列表 → 管理 → DNS 修改(或 DNS 服务器)→ 修改 DNS 服务器 → 填两条
腾讯云控制台 → 域名注册 → 我的域名 → 管理 → DNS 服务器 → 修改
华为云控制台 → 域名注册 → 域名列表 → 管理 → DNS 修改
GoDaddyMy Products → Domains → DNS → Nameservers → Change → I'll use my own nameservers
NamecheapDomain List → Manage → Nameservers → Custom DNS
Cloudflare Registrar域名本来就在 Cloudflare,无需修改

要点:

  • 只保留 Cloudflare 的两条 NS,把原来的 NS(如 dns1.hichina.com)删掉;
  • 有些注册商要求先关闭"域名锁定 / DNSSEC",否则保存失败;
  • DNSSEC:如果注册商处启用了 DNSSEC,先去注册商删除 DS 记录,再改 NS。否则切换后域名会解析失败。等 Cloudflare 显示 Active 后,可在 Cloudflare 的 DNS → Settings → DNSSEC 重新开启,并把 Cloudflare 给出的 DS 记录填回注册商;
  • 改完保存,注册商一般提示"生效需要 24–48 小时",实际通常几分钟到几小时。

2.4 等待生效并验证

回到 Cloudflare → 你的域名 → Overview,状态会经历:

Pending Nameserver Update  ──等待──▶  Active
(等待注册商把 NS 指向 Cloudflare)      (可以正常使用)

验证命令(任选其一):

# macOS / Linux
dig NS example.com +short
dig NS example.com @1.1.1.1 +short

# Windows PowerShell
nslookup -type=NS example.com 1.1.1.1

输出里同时出现你页面上那两条 *.ns.cloudflare.com 就说明 NS 已生效。若本地有缓存,等几分钟或换用 @1.1.1.1 再查。

Cloudflare 偶尔会抽样检测,状态变 Active 前不要急着绑定域名;绑定会失败并提示找不到 Zone。

2.5 检查 DNS 记录(很重要,别跳过)

进入 DNS → Records,确认:

类型名称内容说明
A / CNAMEexample.com你的源站 IP 或主机名如果站点只放 Cloudflare Pages,可以没有;CloudSite 绑定域名时会自动建 CNAME
CNAMEwwwexample.com可选
MXexample.com邮箱服务商地址有企业邮箱就必须保留,否则切完 NS 收不到信
TXTexample.comv=spf1 ... / DKIM / 验证串按原样保留

代理状态(橙色云):

DNS 记录列表
┌──────────────────────────────────────────────────────────────┐
│ Type   Name              Content                  Proxy      │
│ CNAME  example.com       home-abc.pages.dev       🟠 已代理  │
│ A      www               ...                      🟠 已代理  │
│ MX     example.com       mx.example-mail.com      ⚪ DNS only│
└──────────────────────────────────────────────────────────────┘
  • 🟠 橙色云(Proxied):流量经过 Cloudflare,可以用 CDN、自动 HTTPS、隐藏源站;
  • ⚪ 灰色云(DNS only):只解析不代理。MX 记录必须是灰色;
  • CloudSite 绑定时写入的 CNAME 会强制为橙色云,不要手动改成灰色,否则 Pages 的证书校验和 HTTPS 会出问题。

2.6 开启 HTTPS(推荐)

  1. SSL/TLS → Overview:模式选 Full (strict);
    • ❌ 不要选 Flexible(会造成重定向循环 / 混合内容);
    • Pages 项目由 Cloudflare 托管,Full (strict) 可直接工作;
  2. SSL/TLS → Edge Certificates:
    • Always Use HTTPS → 打开;
    • Automatic HTTPS Rewrites → 打开;
    • Minimum TLS Version → 1.2;
  3. CAA 记录检查:如果 DNS 里有 CAA 记录,确认它允许 Cloudflare 使用的 CA(如 letsencrypt.org、pki.goog、digicert.com)。不允许的话证书会一直签不下来。

3. 创建 API Token(最小权限)

⚠️ 不要使用 Global API Key(全局密钥)。它拥有整个账号的全部权限,泄露后果严重。CloudSite 只需要一个权限受限的 Custom Token。

3.1 进入创建页面

  1. 登录 https://dash.cloudflare.com/;
  2. 点击右上角头像:
┌──────────────────────────────────────────────┐
│  Cloudflare                        [头像 ▾]  │
│                                    ┌─────────┴──────────────┐
│                                    │ My Profile             │
│                                    │ Manage Account         │
│                                    │ Log out                │
│                                    └────────────────────────┘
└──────────────────────────────────────────────┘
  1. 选择 My Profile(我的个人资料) → 左侧 API Tokens(API 令牌);
  2. 或直接打开:https://dash.cloudflare.com/profile/api-tokens。

3.2 选择 Custom Token

页面上有几个现成模板(Edit Cloudflare Workers 等),都不要用,点击:

Create Token → Custom token → Get started

┌──────────────────────────────────────────────────────────────────┐
│  Create Custom Token                                             │
├──────────────────────────────────────────────────────────────────┤
│  Token name                                                      │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │ CloudSite                                                  │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                  │
│  Permissions                                                     │
│  ┌────────────────┬──────────────────────┬──────────────────┐    │
│  │ Account        │ Cloudflare Pages     │ Edit             │    │
│  ├────────────────┼──────────────────────┼──────────────────┤    │
│  │ Zone           │ DNS                  │ Edit             │    │
│  ├────────────────┼──────────────────────┼──────────────────┤    │
│  │ Zone           │ Zone                 │ Read             │    │
│  ├────────────────┼──────────────────────┼──────────────────┤    │
│  │ Account        │ Account Settings     │ Read  (可选)   │    │
│  └────────────────┴──────────────────────┴──────────────────┘    │
│                                                                  │
│  Zone Resources                                                  │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │ Include → All zones  (或:Specific zone → example.com)    │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                  │
│  Account Resources                                               │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │ Include → 你的账号名称 / 你的账号 ID                        │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                  │
│  TTL:建议 90 天(到期前重新生成并更新到 CloudSite)              │
│                                                                  │
│                              [ Continue to summary ]             │
└──────────────────────────────────────────────────────────────────┘

3.3 权限说明(为什么是这四条)

#资源(Resource)权限组(Permission)级别用途是否必需
1AccountCloudflare PagesEdit创建 Pages 项目、创建部署、上传文件、添加/删除 Pages 自定义域名✅ 必需
2ZoneDNSEdit读取/改写/创建域名下的 CNAME 记录(指向 <project>.pages.dev)✅ 必需
3ZoneZoneRead列出账号下的域名,自动定位 example.com 属于哪个 Zone✅ 必需
4AccountAccount SettingsReadGET /accounts 列出账号,供「验证获取」自动填充 Account ID⭕ 推荐
  • 只勾选这四项,不要勾 Zone: Edit、Account: Edit、Workers: Edit 之类的全权权限;
  • Zone Resources:
    • Include → All zones:以后新增域名不用改 Token,最省事;
    • Include → Specific zone → example.com:权限最小,但每加一个域名都要回来更新 Token;
  • Account Resources:只勾你自己的账号。漏勾会出现 Could not route to /client/v4/accounts/... 或 403;
  • 第 4 项没勾也能用:到 CloudSite 里手动填 Account ID 即可(见第 4 节)。只是「验证获取」不会显示账号列表。

3.4 生成并保存 Token

  1. 点 Continue to summary → 核对权限 → Create Token;
  2. Token 只显示一次,形如:
CloudSite 的 Token 已创建
┌──────────────────────────────────────────────────────────────────┐
│  复制这个 Token(离开页面后无法再查看)                           │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │ v1.0-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  │  │
│  │                               [ Copy ]                     │  │
│  └────────────────────────────────────────────────────────────┘  │
│  ⚠️ 不要截图发群、不要提交到 Git、不要写进前端代码              │
└──────────────────────────────────────────────────────────────────┘
  1. 立即粘贴到 CloudSite 的设置页(下一步),或先存进密码管理器;
  2. 如果 Token 泄露:回到 API Tokens 列表,点击该 Token → Roll(换新)或 Delete(删除),再把新值填到 CloudSite。

想确认权限范围:同一页面的 Token 列表里可以看到每个 Token 的 Permissions 摘要和 Last used 时间。


4. 取得 Account ID

Account ID 是 32 位十六进制字符串,例如 a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6。

方法 A:从控制台 URL 取(最快)

登录后地址栏是:

https://dash.cloudflare.com/a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6/home
                            └─────────── 这一段就是 Account ID ───────────┘

方法 B:从 Workers & Pages 页面取

左侧菜单 Workers & Pages → 右侧概览卡片底部有 Account ID,点复制图标。

方法 C:让 CloudSite 自动获取

在设置页粘贴 Token 后点 「验证获取」。前提是 Token 含 Account → Account Settings → Read;否则账号列表为空,请用方法 A/B 手动填入。

❗ 常见混淆:

  • cfut_ 开头的是 API Token,不是 Account ID;
  • 32 位十六进制的是 Account ID;
  • 设置页会自动校验格式,填错会直接提示。

5. 在 CloudSite 里填写并验证

  1. 登录 CloudSite(管理员);
  2. 左侧 设置 → 顶部 Cloudflare 卡片:
┌──────────────────────────────────────────────────────────────────┐
│  Cloudflare 授权                                                 │
├──────────────────────────────────────────────────────────────────┤
│  API Token                                                       │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │ ••••••••••••••••••••••••••••••                    [👁] [🔑]│  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                  │
│  Account ID                                                      │
│  ┌──────────────────────────────────────────────┐  ┌──────────┐  │
│  │ a1b2c3d4e5f6...                              │  │ 验证获取 │  │
│  └──────────────────────────────────────────────┘  └──────────┘  │
│                                                                  │
│  可访问账号 · 点击选择          ← Token 有 Account Settings:Read │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │ My Company    a1b2c3d4e5f6...                        ✓     │  │
│  └────────────────────────────────────────────────────────────┘  │
│                                                                  │
│  [保存凭据]  [从 Wrangler 导入授权]  [创建 Token ↗]              │
└──────────────────────────────────────────────────────────────────┘
  1. 依次操作:
    • 粘贴 API Token;
    • 点 「验证获取」;
      • 出现账号列表:点击你的账号,自动填入 Account ID;
      • 没有账号列表:手动粘贴第 4 节取得的 Account ID;
    • 点 「保存凭据」;
    • 右侧「连接状态」中 Cloudflare 应变为 已连接。
  1. 验证成功的判断标准(满足全部即可):
✅ 右侧「连接状态 → Cloudflare」显示 已连接
✅ Account ID 为 32 位十六进制,没有红色格式错误
✅ 「验证获取」不报 401 / 403
✅ 站点详情页点「部署」能创建 Pages 项目(第一次部署会验证 Pages 权限)

Wrangler 导入只适合本机开发:先在终端执行 npx wrangler login,再点「从 Wrangler 导入授权」。 服务器部署时不要用这个方式(服务器上没有你的浏览器授权)。OAuth Token 的权限由 wrangler 决定,通常比自定义 Token 大。


6. 在 CloudSite 里绑定域名

6.1 前提

  • 域名已在同一个 Cloudflare 账号下,状态 Active(第 2 节);
  • 站点已经至少部署成功一次(Pages 项目已存在,CloudSite 需要读取它真实的 pages.dev 子域);
  • Token 含 Pages:Edit + DNS:Edit + Zone:Read。

6.2 操作步骤

  1. 打开站点详情页 → 域名(或「绑定域名」);
  2. 输入域名,例如:
    • 子域:shop.example.com
    • 裸域:example.com
  3. 点击 绑定。

CloudSite 会自动完成:

① 在你的账号里找到 example.com 对应的 Zone(最长后缀匹配)
② POST /accounts/<id>/pages/projects/<project>/domains   ← 把域名挂到 Pages 项目
③ 读取项目真实子域(可能是 home-abc.pages.dev,而不是 home.pages.dev)
④ 写入/改写 CNAME:
      example.com  →  home-abc.pages.dev   (橙色云代理,TTL Auto)
      comment = "Managed by CloudSite"
⑤ 等待 Cloudflare 签发证书(通常 1–5 分钟)

DNS 记录最终长这样(Cloudflare → DNS → Records):

┌────────┬──────────────────┬─────────────────────────┬─────────────┐
│ Type   │ Name             │ Content                 │ Proxy       │
├────────┼──────────────────┼─────────────────────────┼─────────────┤
│ CNAME  │ example.com      │ home-abc.pages.dev      │ 🟠 Proxied  │
│ CNAME  │ www.example.com  │ home-abc.pages.dev      │ 🟠 Proxied  │
└────────┴──────────────────┴─────────────────────────┴─────────────┘
                               ↑ 以项目实际 subdomain 为准
  1. 状态变化:
pending(证书配置中) ──1–5 分钟──▶ active(已生效)
  1. 验证:
dig CNAME shop.example.com +short
curl -I https://shop.example.com
# 期望:HTTP/2 200,证书由 Cloudflare 签发

6.3 注意事项

  • 不要手动修改/删除 comment = Managed by CloudSite 的 CNAME;CloudSite「移除域名」时会删除它(手动改过的记录会保留);
  • 根域(example.com)写 CNAME 是合法的:Cloudflare 默认开启 CNAME Flattening;
  • 已存在同名 A / CNAME 记录时,CloudSite 会改写成指向 Pages 的 CNAME。如果那条记录你在别处还要用,先备份或换个子域;
  • 一个站点可以绑多个域名;Free 套餐每个 Pages 项目上限 100 个自定义域名(Pro 250,Business/Enterprise 500);
  • 证书签发期间访问出现 522 / 526 / ERR_SSL 属正常,等状态变 active 再看;
  • Cloudflare 上删除站点/项目不会自动解绑,需要到 Pages → 项目 → Custom domains 里手动清理。

7. 排错速查表

现象 / 报错原因解决
401 / 403 Authentication errorToken 无效、过期、权限不足核对四类权限;重新生成 Token;确认 Account Resources 勾了你的账号
Could not route to /client/v4/accounts/...Account ID 填错 / 填成了 Token重新取 32 位 Account ID;cfut_ 开头的是 Token
找不到 xxx 所属的 Cloudflare Zone域名不在该账号下;Token 缺 Zone:Read;Zone Resources 没包含该域名确认域名在 Websites 列表;补权限;Zone Resources 选 All zones
「验证获取」后没有账号列表Token 缺 Account Settings:Read手动填 Account ID,或给 Token 补该权限
绑定域名报 Project does not exist还没部署过先在站点详情页点「重新部署」
绑定后访问 522 / 526证书还在签发;SSL 模式错误等 1–5 分钟;SSL/TLS 改为 Full (strict)
证书一直签不下来CAA 记录不允许 Cloudflare 的 CA检查/删除 CAA,或放行 letsencrypt.org、pki.goog
域名解析到旧网站同名 A 记录存在,或浏览器缓存看 DNS 记录是否已被改写为 CNAME;刷新本地 DNS 缓存
NS 一直 Pending Nameserver Update注册商 NS 没改成功;DNSSEC 冲突dig NS 域名 +short 确认;删除 DS 记录后重新改 NS
邮箱突然收不到信切 NS 时 MX/TXT 没导入在 Cloudflare DNS 里补回原 MX / SPF / DKIM
项目名被占用(81044 等)xxx.pages.dev 已被别人使用CloudSite 会自动读取真实子域(可能带随机后缀),重新绑定一次即可
429 Too Many Requests批量操作过快降低并发,稍后重试

8. 安全与日常维护

Token 权限最小化

  • CloudSite 只需要 3 条必需权限(+1 条可选);
  • 每个环境(本机 / 测试 / 生产)使用不同的 Token,方便单独吊销;
  • 不要使用 Global API Key,也不要给 Account:Edit、Zone:Edit 全权。

存放位置

  • CloudSite 把 Token 保存在数据目录:./.data/config.json(管理员)或 ./.data/users/<id>/config.json(普通用户),权限 600;
  • 不要提交到 Git、不要截图发群、不要写进前端代码或浏览器 localStorage;
  • 服务器上的 .data 目录要定期备份,且不要随发布包一起分发。

轮换与吊销

  • 建议 Token 设置 90 天 TTL;
  • 到期前:Cloudflare → API Tokens → Roll/新建 → CloudSite 设置页更新 → 保存凭据;
  • 怀疑泄露:立即 Delete 该 Token(比改密码更快止损),检查 Audit Log 里的 API 调用记录。

域名安全

  • 注册商处开启域名锁与双重验证;
  • Cloudflare 账号开启 2FA;
  • 邮箱的 MX/SPF/DKIM 记录不要随意删除。

9. 附录:权限速查 / 命令行自检

9.1 权限速查(复制到 Cloudflare 创建页对照)

Account  →  Cloudflare Pages    →  Edit     (必需)
Zone     →  DNS                 →  Edit     (必需)
Zone     →  Zone                →  Read     (必需)
Account  →  Account Settings    →  Read     (可选,自动列出账号)

9.2 用命令行验证 Token(不经过 CloudSite)

# 把 Token 放进环境变量,避免出现在 shell 历史里
read -rsp "Cloudflare API Token: " CF_TOKEN; echo
CF_ACCOUNT="你的32位AccountID"

# 1) Token 是否有效
curl -s https://api.cloudflare.com/client/v4/user/tokens/verify \
  -H "Authorization: Bearer $CF_TOKEN" | jq '{success, errors, status: .result.status}'

# 2) 能列出哪些账号(需要 Account Settings:Read)
curl -s "https://api.cloudflare.com/client/v4/accounts?per_page=50" \
  -H "Authorization: Bearer $CF_TOKEN" | jq '{success, accounts: [.result[].name]}'

# 3) 能列出哪些域名(需要 Zone:Read)
curl -s "https://api.cloudflare.com/client/v4/zones?per_page=50" \
  -H "Authorization: Bearer $CF_TOKEN" | jq '{success, zones: [.result[].name]}'

# 4) 能访问该账号的 Pages 项目(需要 Pages:Edit,读操作同样需要)
curl -s "https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT/pages/projects?per_page=5" \
  -H "Authorization: Bearer $CF_TOKEN" | jq '{success, projects: [.result[].name]}'

期望:四条都是 "success": true;第 3、4 条能看到你的域名 / 项目(新账号为空数组也算成功)。

9.3 界面位置速查

要做什么URL
添加域名 / 看 Websiteshttps://dash.cloudflare.com/
管理 API Tokenhttps://dash.cloudflare.com/profile/api-tokens
看 Account IDhttps://dash.cloudflare.com/<32位ID>/home
改 DNS 记录https://dash.cloudflare.com/<32位ID>/<域名>/dns/records
看 Pages 项目https://dash.cloudflare.com/<32位ID>/workers-and-pages
看 Zone 状态https://dash.cloudflare.com/<32位ID>/<域名>
官方 Token 权限参考https://developers.cloudflare.com/fundamentals/api/reference/permissions/

一页纸流程(可打印/转发)

① 注册 Cloudflare → Add a site → 输入 example.com → 选 Free
② 到注册商把 NS 改成 Cloudflare 给的两条 → 等状态 Active
③ 检查 MX / TXT 记录,SSL/TLS 设为 Full (strict)
④ My Profile → API Tokens → Create Custom Token
     Account · Cloudflare Pages · Edit
     Zone    · DNS              · Edit
     Zone    · Zone             · Read
     Account · Account Settings · Read(可选)
   Zone Resources: All zones   Account Resources: 你的账号
⑤ 复制 Token + 找到 32 位 Account ID
⑥ CloudSite → 设置 → 粘贴 Token / Account ID → 验证获取 → 保存凭据
⑦ 新建站点 → 部署成功 → 站点详情 → 绑定域名 shop.example.com
⑧ 等 1–5 分钟证书生效 → 访问 https://shop.example.com
教程来源:仓库根目录 CLOUDFLARE.md回到设置填写凭据 →