---
title: 路线 D：Cloudflare 免费 SSL 完整教程（没有服务器权限也能做）
url: https://www.paibaowork.com/ssl/deploy/cloudflare/
last_verified: 2026-10-12
version: v1.0
---

## 这一页解决什么问题

你**没有服务器权限**——网站是建站公司做的、或者放在 SaaS 平台上，你手里只有一个域名账号。或者你想顺手拿到免费的 CDN 加速和基础防护。这两种情况，都可以走 **Cloudflare** 这条路线：

- 把域名的解析（NS）搬到 Cloudflare **免费版**；
- Cloudflare 自动给访客端签发免费证书，自动续期；
- 你全程**不用碰服务器**，只需要在域名注册商那里改一次 NS。

**用时：** 大约 30 分钟操作 + 等待 NS 生效（几分钟到 24 小时）。**难度：** ★★。

> [!TIP] 一句话理解这条路
> 接进去之后，访客先连 **Cloudflare**，Cloudflare 再去你的服务器（叫「**源站**」，Origin）取内容。所以有**两段路**：访客 ↔ Cloudflare 是第一段，Cloudflare ↔ 源站是第二段。第一段的证书由 Cloudflare 免费发给你，这就是「没有服务器权限也能做」的原因。

## 一张表看懂：Cloudflare 路线要做什么

| 步骤 | 在哪里做 | 你要看到什么 |
|---|---|---|
| 1. 接入域名 | Cloudflare 后台 Add a domain → Free | 拿到两个 `*.ns.cloudflare.com` |
| 2. 核对 DNS | 同页 DNS 记录列表 | `@`、`www` 在；**MX / TXT 一条不少** |
| 3. 改 NS | 域名注册商后台 | 换成 Cloudflare 给的两个，状态变 Active |
| 4. 选加密模式 | SSL/TLS → Overview | 选 **Full (strict)**（源站要有有效证书） |
| 5. 开强制跳转 | SSL/TLS → Edge Certificates | **Always Use HTTPS** 打开 |
| 6. 验收 | 浏览器 + SSL Labs | 地址栏「连接是安全的」，评级 A / A+ |

![【真实截图】没装证书时地址栏显示「不安全」；证书过期时整页红色警告](/ssl/images/xarticle/01-not-secure.png)

![【真实截图】Cloudflare 免费计划介绍页（cloudflare.com 中文页）](/ssl/images/guide/r13_cf_free.png)

> [!WARNING] 先了解：国内访问
> Cloudflare 免费计划的节点都在中国大陆境外。外贸站主要面向海外客户，一般影响不大；如果你同时很看重国内客户的访问速度，先小范围测试再全量切。

## 第 1 步：把域名接入 Cloudflare

1. 打开 `https://dash.cloudflare.com/sign-up` 注册账号。**用公司邮箱，开启两步验证。**
2. 登录后，点 **添加域 / Add a domain**（按钮名称随版本变化，也可能叫 Onboard a domain），输入你的**根域名**（不带 www），继续。
3. 选择 **Free（免费）** 计划。
4. Cloudflare 会自动扫描你现有的 DNS 记录。**逐条核对**：网站的 A 记录 / CNAME（`@` 和 `www`）要在；邮箱相关的 MX、TXT（SPF/DKIM）记录**一条都不能少**，否则企业邮箱会收不到信。网站记录保持「**已代理**」（橙色云朵图标）——只有橙色云，访客才会用到 Cloudflare 的免费证书。
5. Cloudflare 会给你两个名称服务器（Nameserver），形如 `xxxx.ns.cloudflare.com`、`yyyy.ns.cloudflare.com`（每个账号不同，**以页面显示为准**）。**先把注册商那边原来的 NS 抄下来备用**（回滚时要用）。

![【示意图】Cloudflare：添加域名 → 选免费计划 → 检查 DNS → 获取两个名称服务器](/ssl/images/guide/m06_cf_addsite.png)

![【示意图】添加域名 → 选 Free → 核对 DNS → 记下两个名称服务器](/ssl/images/xarticle/02-cf-add-site.png)

> [!WARNING] 核对 DNS 是全程最关键的一步
> 改 NS 之后，域名的**所有** DNS 解析都由 Cloudflare 负责，原来 DNS 后台的设置不再生效。所以这一步的核对（特别是邮箱 MX 记录）非常重要——漏了 MX，企业邮箱会直接断邮。**切换前先把现有 DNS 记录全量截图备份。**

## 第 2 步：到域名注册商修改 NS

NS 就是「这个域名的解析由谁负责」。这一步相当于把域名的 DNS **搬家**到 Cloudflare。

各家入口大致是（菜单名以实际为准）：

| 注册商 | 修改入口 |
|---|---|
| 阿里云 / 万网 | 域名控制台 → 域名列表 → 管理 → DNS 管理 → 修改 DNS |
| 腾讯云（DNSPod） | 域名注册 → 我的域名 → 管理 → DNS 服务器 → 修改 |
| 西部数码 / 新网 | 域名管理 → DNS 服务器设置 |
| GoDaddy | Domain Settings → Nameservers → Change → Custom |
| Namecheap | Domain List → Manage → Nameservers → Custom DNS |
| Namesilo | Domain Manager → Change Nameservers |

操作步骤：

1. 登录你**买域名的地方**。
2. 找到域名的 **DNS 服务器 / 修改 DNS / Nameservers** 设置。
3. **改之前，先把原来的 NS 抄下来**（回滚用）。
4. 如果域名开着 **DNSSEC**，先在注册商那里**关掉**。Cloudflare 官方明确提醒：开着 DNSSEC 改 NS，域名可能直接打不开；等生效后可以在 Cloudflare 里重新开。
5. 选「自定义 DNS」，把原来的两个替换成 Cloudflare 给的两个，**一个字母都别抄错**，保存。

![【示意图】注册商后台修改 DNS 服务器（各家菜单名称不同，以实际为准）](/ssl/images/guide/m07_registrar_ns.png)

![【示意图】注册商后台改 DNS 服务器（各家菜单不同，以实际为准）](/ssl/images/xarticle/03-registrar-ns.png)

### 第 3 步：等状态变成 Active

回到 Cloudflare，点「检查名称服务器 / Check nameservers」。

- 一般几分钟到几小时生效，官方说**最多等 24 小时**。
- 生效后你会收到 Cloudflare 的邮件，域名状态变成 **Active（有效）**。
- 之后 Cloudflare 会自动签发免费的访客端证书（Universal SSL），官方说法是激活后 **15 分钟到 24 小时**内到位。

想自己确认，可以在电脑上运行：

```bash
nslookup -type=ns 你的域名 1.1.1.1
```

看到以 `ns.cloudflare.com` 结尾的，就说明搬家成功了。

## 第 4 步：选对加密模式（最关键）

记住那句话：**有两段路**。在 Cloudflare 后台：选域名 → 左侧 **SSL/TLS** → **概述（Overview）**。

![【示意图】Cloudflare 几种加密模式的区别（依据官方文档 Encryption modes）](/ssl/images/guide/d03_cfmodes.png)

![【示意图】Flexible / Full / Full (strict) 三种模式的区别](/ssl/images/xarticle/04-ssl-modes.png)

| 模式 | 访客 ↔ Cloudflare | Cloudflare ↔ 源站 | 源站需要什么 | 建议 |
|---|---|---|---|---|
| Off | 不加密 | 不加密 | — | 不要用 |
| Flexible（灵活） | 加密 | **不加密** | 什么都不用 | 仅临时过渡；源站再强制 https 会无限跳转 |
| Full（完全） | 加密 | 加密，但不验证证书 | 任意证书（自签名也行） | 过渡用 |
| **Full (strict)（完全/严格）** | 加密 | 加密并验证证书 | **有效证书**（Let's Encrypt 或 Cloudflare 源证书） | **推荐** |

1. 较新的账号默认是 **Automatic SSL/TLS（自动）**：Cloudflare 会扫描你的源站，自动选它能支持的最安全模式（官方文档说明它不会自动降级）。如果你想自己指定，选 **Custom SSL/TLS（自定义）**。
2. 选 **Full (strict)**——前提是源站已经装好有效证书（下一节）。如果源站暂时还没有证书，可以先选 Full，装好后再改成 Full (strict)。

![【示意图】Cloudflare：SSL/TLS → 概述 → 选择加密模式](/ssl/images/guide/m08_cf_modes.png)

![【真实截图】Cloudflare 官方文档「Encryption modes」页面（2026-10-10）](/ssl/images/guide/r12_cf_docs_modes.png)

> [!WARNING] 为什么不推荐 Flexible
> 因为它最容易引发**无限跳转**：Cloudflare 用 http 去源站拿内容，源站说「请走 https」，访客又回到 Cloudflare，Cloudflare 又用 http 去源站……浏览器最后报 `ERR_TOO_MANY_REDIRECTS`，网站直接打不开。Cloudflare 官方文档写得很直白：**源站强制跳 HTTPS 的，不要用 Flexible，改用 Full 或 Full (strict)。**

## 第 5 步：给源站装证书（二选一）

想用 Full (strict)，源站必须有一张**有效证书**。两个办法选一个：

**方式一：源站自己装 Let's Encrypt。** 在服务器 / 宝塔 / cPanel 上按对应路线装好即可（Cloudflare 代理状态下 HTTP 验证一般也能通过）。优点是：万一以后不用 Cloudflare，网站照样是 https。

**方式二：用 Cloudflare 源证书（Origin CA）。** 免费、最长 15 年，只给「Cloudflare ↔ 源站」这一段用。

1. **SSL/TLS** → **源服务器（Origin Server）** → **创建证书（Create Certificate）**。
2. 选「使用 Cloudflare 生成私钥和 CSR」，私钥类型 RSA（兼容性最好）或 ECC。
3. 主机名默认已包含 `你的域名` 和 `*.你的域名`，保持即可。
4. 有效期选 15 年（或更短）。点 **创建**。
5. 页面显示两段文本：**源证书**和**私钥**。分别复制，保存为 `origin.pem` 和 `origin.key` 两个文本文件。**私钥离开这个页面后再也看不到。**

![【示意图】Cloudflare：SSL/TLS → 源服务器 → 创建证书](/ssl/images/guide/m10_cf_origin.png)

6. 安装到源站：
   - **宝塔**：站点设置 → SSL → 当前证书，左边粘贴私钥（KEY），右边粘贴证书（PEM），保存；
   - **cPanel**：Security → SSL/TLS → Install and Manage SSL for your site，粘贴证书和私钥；
   - **Nginx**：把两个文件放到 `/etc/ssl/cloudflare/`，配置中写：

```nginx
server {
    listen 443 ssl;
    server_name 你的域名 www.你的域名;
    ssl_certificate     /etc/ssl/cloudflare/origin.pem;
    ssl_certificate_key /etc/ssl/cloudflare/origin.key;
    root /var/www/你的域名;
}
```

逐行解释：`listen 443 ssl` 监听 https 端口；`server_name` 写你的域名；`ssl_certificate` 指向证书文件；`ssl_certificate_key` 指向私钥文件；`root` 是网站文件目录。改完运行 `sudo nginx -t`，通过后 `sudo systemctl reload nginx`。

> [!WARNING] 源证书只能「藏在 Cloudflare 后面」用
> 浏览器**并不信任** Cloudflare 源证书。如果你暂停了 Cloudflare，或把某条 DNS 记录改成「仅 DNS」（灰色云朵），访客会直接看到 `NET::ERR_CERT_AUTHORITY_INVALID` 警告。另外，Cloudflare 官方文档写明：**它不会发送源证书的到期提醒**，请自己记下到期日。

## 第 6 步：开启「始终使用 HTTPS」

1. **SSL/TLS** → **边缘证书（Edge Certificates）**。
2. 确认最上方「边缘证书」状态为 **有效（Active）**——这是 Cloudflare 免费发给访客端的证书，自动续期。
3. 打开 **始终使用 HTTPS（Always Use HTTPS）**：所有 http 访问都 301 跳到 https。
4. 建议同时打开 **自动 HTTPS 重写（Automatic HTTPS Rewrites）**：能自动修复一部分混合内容。

![【示意图】Cloudflare：SSL/TLS → 边缘证书 → 始终使用 HTTPS](/ssl/images/guide/m09_cf_edge.png)

![【示意图】SSL/TLS → 边缘证书 → 打开 Always Use HTTPS 和自动 HTTPS 重写](/ssl/images/xarticle/05-always-https.png)

> [!NOTE] 开了它，源站就别再重复做跳转
> 加密模式是 Off 时这个开关不会出现；开了 Always Use HTTPS，Cloudflare 官方建议源站不要再做一遍跳转，避免重复。**HSTS** 这个选项先别急着开，等全站 https 稳定几周再说。

## 验收：四步确认

![【真实截图】Chrome 点地址栏左侧图标 → 连接是安全的 → 证书有效](/ssl/images/xarticle/06-verify-chrome.png)

1. 用 Chrome 打开你的网站，点地址栏左边的图标，看到「**连接是安全的**」，再点进去看到「**证书有效**」。（新版 Chrome 用「调节」图标代替了小锁，不代表不安全。）
2. 在地址栏输入 `http://你的域名`，应该自动跳到 https。
3. **电脑、手机都试；带 www、不带 www 都试。**
4. 打开 `ssllabs.com/ssltest` 测一次，目标 **A 或 A+**。

会用命令的，可以再跑两行：

```bash
curl -sI http://你的域名
curl -sI https://你的域名
```

第 1 行应该返回 `301` 跳转到 https；第 2 行能正常返回，并看到 `server: cloudflare`。

## 四个必踩的坑（照这条逐条避）

这四条是实际切换时最容易出事的地方，一条一条对照检查：

| # | 坑 | 症状 | 解法 |
|---|---|---|---|
| 1 | **MX 记录丢失** | 改完 NS，企业邮箱收不到信 | 切换前把现有 DNS 记录**全量截图备份**；在 Cloudflare 的 DNS 里把 MX、TXT 补齐，以邮箱服务商提供的值为准 |
| 2 | **SaaS 建站的 CNAME 没带过来** | 网站直接打不开 | 有些 SaaS 平台（如凡科这类）要求域名 CNAME 到它们的地址；切 NS 前必须先在 Cloudflare 里把这条 CNAME **原样补上** |
| 3 | **DNSSEC 没关** | 全球一半地区解析失败、网站时好时坏 | 原注册商开了 DNSSEC 的，切换前**先关闭**；等 Cloudflare 生效后可以在 Cloudflare 里重新开 |
| 4 | **无限重定向** | 报 `ERR_TOO_MANY_REDIRECTS`，网站打不开 | 模式选了 Flexible，而源站又强制跳 https。**改成 Full 或 Full (strict)，跳转只留 Cloudflare 一处** |

还有两个常见错误码，一并记下：

| 错误码 | 意思 | 解法 |
|---|---|---|
| `Error 526` | Full (strict) 下源站证书无效、过期或域名对不上 | 给源站装有效证书；临时可以先改回 Full |
| `NET::ERR_CERT_AUTHORITY_INVALID` | 用了源证书，但暂停了 Cloudflare 或改成了灰色云朵 | 恢复橙色云朵，或源站改用 Let's Encrypt |

### 一张排查表：症状 → 原因 → 解法

切换过程中遇到问题，先在下表里对号入座，再往下深挖：

| 症状 | 最可能的原因 | 解法 |
|---|---|---|
| 网站打不开，报 `ERR_TOO_MANY_REDIRECTS` | 模式选了 Flexible，源站又强制跳 https | 改成 Full 或 Full (strict)；跳转只留 Cloudflare 一处 |
| 改完 NS 后企业邮箱收不到信 | MX、TXT 记录没带过来 | 在 Cloudflare 的 DNS 里补齐，以邮箱服务商提供的值为准 |
| Cloudflare 显示 `Error 526` | 源站证书无效、过期或域名对不上 | 给源站装有效证书；临时先改回 Full |
| 访客看到 `NET::ERR_CERT_AUTHORITY_INVALID` | 用了源证书，但暂停了 Cloudflare 或改成灰色云朵 | 恢复橙色云朵，或源站改用 Let's Encrypt |
| 网址已是 https，仍提示不安全 | 混合内容：页面里还有 `http://` 资源 | F12 → Console 搜 `Mixed Content`，把 http 改成 https |
| 域名一直不生效、状态不是 Active | NS 没抄对、注册商未保存、或 DNSSEC 还开着 | 核对两个 NS；关闭 DNSSEC；在 Cloudflare 点「检查名称服务器」重试 |
| 部分网站能开、部分打不开 | DNSSEC 没关，全球解析不一致 | 到原注册商关闭 DNSSEC，等解析稳定 |
| 边缘证书一直是 Pending | 刚接入，签发还没完成 | 官方说激活后 15 分钟到 24 小时内到位，等一等再看 |

### 上线后建议顺手做的两件事

1. **更新 Google Search Console**：在 GSC 里添加或确认 https 版本的站点，重新提交 https 的 sitemap，让搜索引擎尽快收录新地址。
2. **记下关键日期**：源证书的到期日（如果你用了 Cloudflare 源证书，它不发提醒）、以及是否重新开启了 DNSSEC。

> [!NOTE] 关于国内访问
> Cloudflare 免费计划的节点都在中国大陆境外。外贸站主要面向海外客户，一般影响不大；如果国内访问也很重要，建议先小范围测试再全量切，或者给国内访客保留另一条线路。

## 高级：用 API 自动化（给技术人员或 AI 智能体）

如果让技术人员或 AI 智能体用脚本完成，请创建一个**权限最小**的 API 令牌：Cloudflare 后台右上角头像 → **我的个人资料（My Profile）** → **API 令牌（API Tokens）** → **创建令牌** → 自定义令牌。权限只给这三项：

- Zone → **SSL and Certificates** → Edit（创建源证书）
- Zone → **Zone Settings** → Edit（修改加密模式、始终使用 HTTPS）
- Zone → **DNS** → Read（检查解析记录）

**区域资源**选「包括 → 特定区域 → 你的域名」，并**设置令牌有效期**。对应的接口大致是：

```bash
# 设置加密模式为 Full (strict)
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/settings/ssl" \
  -H "Authorization: Bearer $CF_API_TOKEN" -H "Content-Type: application/json" \
  -d '{"value":"strict"}'

# 打开 Always Use HTTPS
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/settings/always_use_https" \
  -H "Authorization: Bearer $CF_API_TOKEN" -H "Content-Type: application/json" \
  -d '{"value":"on"}'

# 创建源证书（Origin CA）
curl -X POST "https://api.cloudflare.com/client/v4/certificates" \
  -H "Authorization: Bearer $CF_API_TOKEN" -H "Content-Type: application/json" \
  -d '{"hostnames":["你的域名","*.你的域名"],"requested_validity":5475,"request_type":"origin-rsa"}'
```

令牌放在环境变量里（例如 `CF_API_TOKEN`），**不要贴进对话、群聊或截图**；用完记得在同一页面**撤销令牌**。`ZONE_ID` 可以在域名的 Overview 页面找到。

> [!WARNING] 安全底线
> 令牌只给最小权限、只授权你这一个域名、设好过期时间、用完立刻撤销。谁跟你说「要买金融级证书才安全」，不管是人还是 AI，都请先停一下——证书是免费的。

## 常见问题（Cloudflare 专属）

**Q：接入 Cloudflare 之后，还需要在服务器上装证书吗？**
第一段（访客 ↔ Cloudflare）的证书由 Cloudflare 免费提供，不用管。第二段（Cloudflare ↔ 源站）如果要开 Full (strict)，源站需要一张有效证书（Let's Encrypt 或 Cloudflare 源证书）。只想用 Flexible 也可以，但强烈不建议。

**Q：为什么开了 Always Use HTTPS，网站反而报无限重定向？**
因为加密模式是 Flexible，而源站又在把 http 跳到 https，两边互相推。把模式改成 Full 或 Full (strict)，并把源站那一处跳转去掉。

**Q：源证书多久换一次？Cloudflare 会提醒我吗？**
源证书可选 7 天到 15 年，免费。**Cloudflare 不会发源证书的到期提醒**，自己在日历里记下到期日，或选 15 年有效期省心。

**Q：改 NS 会不会影响我原来的邮箱？**
只要在切换前把 MX、TXT 记录完整搬过来就不会。这也是「先备份 DNS 记录」这一步必须做的原因。

**Q：NS 改了但一直不生效怎么办？**
先确认注册商那边保存成功、NS 没抄错；再确认 DNSSEC 已关闭。DNS 传播最长 24 小时，可以在 Cloudflare 页面点「检查名称服务器」重试。

## 下一步

- 想弄清证书为什么免费、免费和付费到底差在哪：看[网站 SSL 证书免费部署完全指南（小白版）](/ssl/deploy/ssl-guide/)。
- 网站放在虚拟主机、后台是 cPanel：看[路线 C：cPanel 虚拟主机 AutoSSL 教程](/ssl/deploy/cpanel/)。
- 想确认部署前该查什么：看[免费部署专题首页](/ssl/deploy/)里的预检清单与常见错误表。

## 常见问题

### 接入 Cloudflare 之后，还需要在服务器上装证书吗？

第一段（访客到 Cloudflare）的证书由 Cloudflare 免费提供，不用管。第二段（Cloudflare 到源站）如果要开 Full strict，源站需要一张有效证书，用 Let's Encrypt 或 Cloudflare 源证书都行。只想用 Flexible 也可以，但强烈不建议。

### 为什么开了 Always Use HTTPS，网站反而报无限重定向？

因为加密模式是 Flexible，而源站又在把 http 跳到 https，两边互相推。把模式改成 Full 或 Full strict，并把源站那一处跳转去掉，只留 Cloudflare 一处跳转。

### 源证书多久换一次？Cloudflare 会提醒我吗？

源证书可选 7 天到 15 年，免费。Cloudflare 不会发源证书的到期提醒，自己在日历里记下到期日，或直接选 15 年有效期省心。另外源证书浏览器并不信任，只能藏在 Cloudflare 后面用。

### 改 NS 会不会影响我原来的企业邮箱？

只要在切换前把 MX、TXT 记录完整搬到 Cloudflare 就不会。这也是先备份 DNS 记录这一步必须做的原因，漏了 MX 企业邮箱会直接断邮。

### NS 改了但一直不生效怎么办？

先确认注册商那边保存成功、两个 NS 没抄错；再确认原注册商的 DNSSEC 已经关闭。DNS 传播最长 24 小时，可以在 Cloudflare 页面点检查名称服务器重试。

## 资料来源与核实记录

| 事实 | 来源 | 核实日期 |
|---|---|---|
| Cloudflare 加密模式（Off / Flexible / Full / Full strict） | https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/ | 2026-10-10 |
| Cloudflare Origin CA 源证书（浏览器不信任，最长 15 年，不发到期提醒） | https://developers.cloudflare.com/ssl/origin-configuration/origin-ca/ | 2026-10-10 |
| Cloudflare 边缘证书与 Always Use HTTPS（Edge Certificates） | https://developers.cloudflare.com/ssl/edge-certificates/ | 2026-10-10 |
| Cloudflare API 令牌与权限范围（Zone SSL and Certificates / Zone Settings / DNS） | https://developers.cloudflare.com/fundamentals/api/get-started/create-token/ | 2026-10-10 |
| Cloudflare 变更名称服务器（NS）与 DNSSEC 前置注意事项 | https://developers.cloudflare.com/dns/zone-setups/full-setup/setup/ | 2026-10-10 |
| Let's Encrypt 已于 2025-06-04 停止到期提醒邮件服务 | https://letsencrypt.org/2025/06/26/expiration-notification-service-has-ended.html | 2026-10-10 |

## 更新记录

- 2026-10-12 · v1.0：路线 D 教程上线：接入五步、DNS 核对、加密模式表、源证书与 Always Use HTTPS，含四个必踩的坑与最小权限 API 令牌自动化摘要。
