路线 D · Cloudflare
路线 D:Cloudflare 免费 SSL 完整教程(没有服务器权限也能做)
只能管域名、没有服务器权限的企业,或想顺手拿到免费 CDN 与基础防护的网站适用——30 分钟操作加等待 NS 生效。文中官方资料均于 2026-10-10 核对。
本文目录 · 12 节
先说结论
- 接进去之后有两段路:访客 ↔ Cloudflare 的证书由 Cloudflare 免费签发并自动续期,所以你不用碰服务器,只需要在注册商改一次 NS。
- 最关键的两步:接入时逐条核对 DNS 记录(尤其邮箱 MX、TXT,一条都不能少),以及把 SSL/TLS 模式选成 Full (strict)。
- Flexible 不要用:源站再强制 https 就会无限重定向 ERR_TOO_MANY_REDIRECTS;开了 Always Use HTTPS 就不必在源站重复做跳转。
- 四个必踩的坑:MX 记录丢失、SaaS 建站的 CNAME 没带过来、DNSSEC 没关、无限重定向——切换前逐条检查。
🤖 把这篇交给你的 AI 智能体
复制后粘贴给你常用的 AI 智能体(豆包、ChatGPT、Claude、Codex 等),它会按同样的步骤带你做完,并在每一步改动前先征求你的同意。不要把密码、密钥发到对话里。
查看将要复制的提示词
这一页解决什么问题
你没有服务器权限——网站是建站公司做的、或者放在 SaaS 平台上,你手里只有一个域名账号。或者你想顺手拿到免费的 CDN 加速和基础防护。这两种情况,都可以走 Cloudflare 这条路线:
- 把域名的解析(NS)搬到 Cloudflare 免费版;
- Cloudflare 自动给访客端签发免费证书,自动续期;
- 你全程不用碰服务器,只需要在域名注册商那里改一次 NS。
用时: 大约 30 分钟操作 + 等待 NS 生效(几分钟到 24 小时)。难度: ★★。
一张表看懂: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+ |


第 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 抄下来备用(回滚时要用)。


第 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 给的两个,一个字母都别抄错,保存。


第 3 步:等状态变成 Active
回到 Cloudflare,点「检查名称服务器 / Check nameservers」。
- 一般几分钟到几小时生效,官方说最多等 24 小时。
- 生效后你会收到 Cloudflare 的邮件,域名状态变成 Active(有效)。
- 之后 Cloudflare 会自动签发免费的访客端证书(Universal SSL),官方说法是激活后 15 分钟到 24 小时内到位。
想自己确认,可以在电脑上运行:
nslookup -type=ns 你的域名 1.1.1.1
看到以 ns.cloudflare.com 结尾的,就说明搬家成功了。
第 4 步:选对加密模式(最关键)
记住那句话:有两段路。在 Cloudflare 后台:选域名 → 左侧 SSL/TLS → 概述(Overview)。


| 模式 | 访客 ↔ 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)。


第 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两个文本文件。私钥离开这个页面后再也看不到。

- 6. 安装到源站:
- 宝塔:站点设置 → SSL → 当前证书,左边粘贴私钥(KEY),右边粘贴证书(PEM),保存;
- cPanel:Security → SSL/TLS → Install and Manage SSL for your site,粘贴证书和私钥;
- Nginx:把两个文件放到
/etc/ssl/cloudflare/,配置中写:
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。
第 6 步:开启「始终使用 HTTPS」
- 1. SSL/TLS → 边缘证书(Edge Certificates)。
- 2. 确认最上方「边缘证书」状态为 有效(Active)——这是 Cloudflare 免费发给访客端的证书,自动续期。
- 3. 打开 始终使用 HTTPS(Always Use HTTPS):所有 http 访问都 301 跳到 https。
- 4. 建议同时打开 自动 HTTPS 重写(Automatic HTTPS Rewrites):能自动修复一部分混合内容。


验收:四步确认

- 1. 用 Chrome 打开你的网站,点地址栏左边的图标,看到「连接是安全的」,再点进去看到「证书有效」。(新版 Chrome 用「调节」图标代替了小锁,不代表不安全。)
- 2. 在地址栏输入
http://你的域名,应该自动跳到 https。 - 3. 电脑、手机都试;带 www、不带 www 都试。
- 4. 打开
ssllabs.com/ssltest测一次,目标 A 或 A+。
会用命令的,可以再跑两行:
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。
高级:用 API 自动化(给技术人员或 AI 智能体)
如果让技术人员或 AI 智能体用脚本完成,请创建一个权限最小的 API 令牌:Cloudflare 后台右上角头像 → 我的个人资料(My Profile) → API 令牌(API Tokens) → 创建令牌 → 自定义令牌。权限只给这三项:
- Zone → SSL and Certificates → Edit(创建源证书)
- Zone → Zone Settings → Edit(修改加密模式、始终使用 HTTPS)
- Zone → DNS → Read(检查解析记录)
区域资源选「包括 → 特定区域 → 你的域名」,并设置令牌有效期。对应的接口大致是:
# 设置加密模式为 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 页面找到。
常见问题(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 证书免费部署完全指南(小白版)。
- 网站放在虚拟主机、后台是 cPanel:看路线 C:cPanel 虚拟主机 AutoSSL 教程。
- 想确认部署前该查什么:看免费部署专题首页里的预检清单与常见错误表。
答疑
常见问题
接入 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) | Cloudflare Docs | 2026-10-10 |
| Cloudflare Origin CA 源证书(浏览器不信任,最长 15 年,不发到期提醒) | Cloudflare Docs | 2026-10-10 |
| Cloudflare 边缘证书与 Always Use HTTPS(Edge Certificates) | Cloudflare Docs | 2026-10-10 |
| Cloudflare API 令牌与权限范围(Zone SSL and Certificates / Zone Settings / DNS) | Cloudflare Docs | 2026-10-10 |
| Cloudflare 变更名称服务器(NS)与 DNSSEC 前置注意事项 | Cloudflare Docs | 2026-10-10 |
| Let's Encrypt 已于 2025-06-04 停止到期提醒邮件服务 | letsencrypt.org | 2026-10-10 |
更新记录
2026-10-12 · v1.0:路线 D 教程上线:接入五步、DNS 核对、加密模式表、源证书与 Always Use HTTPS,含四个必踩的坑与最小权限 API 令牌自动化摘要。
本专题全文以 CC BY 4.0 协议开源,可转载、改编,请注明出处:GitHub · iPythoning/ssl-guide-zh
交给我们
不想自己动手?
泓森互联提供 SSL 证书终身维护服务:部署、监控、自动续期与失效应急,一次购买长期有效。服务范围与价格以服务页为准;也可以先做免费体检,把情况摸清楚再决定。
留个联系方式,我们帮你看看
不确定自己的网站是什么情况?留下信息,或直接 预约诊断,我们把体检结果和修复路径说清楚。