旗舰 · 完全指南
网站 SSL 证书免费部署完全指南(小白版)
外贸企业老板 / 运营人员 / 所有网站管理员适用——一步一步,让网址栏告别「不安全」。文中官方资料均于 2026-10-10 核对。
利益披露:本站由泓森互联运营,提供 SSL 证书终身维护与建站相关服务;文中价格与政策均标注来源与核实日期,评分与建议不因商业利益加权。
本文目录 · 17 节
- 第0章 · 本指南怎么用 & 我该走哪条路
- 第1章 · 基础知识:10 分钟看懂 SSL
- 第2章 · 自查:你的网站现在 HTTPS 正常吗?
- 第3章 · 动手前的准备:预检清单
- 第4章 · 路线 A:Linux 云服务器 + Certbot(Nginx / Apache)
- 第5章 · 路线 B:宝塔面板
- 第6章 · 路线 C:cPanel 虚拟主机(AutoSSL)
- 第7章 · 路线 D:Cloudflare(没有服务器权限也能做)
- 第8章 · 路线 F:Windows 服务器 + IIS(win-acme)
- 第9章 · 路线 E:SaaS 建站平台(Shopify / Wix / WordPress.com 等)
- 第10章 · 装好之后:这 6 件事一定要做
- 第11章 · 让你的智能体帮你部署
- 第12章 · 故障排查表
- 第14章 · 一页速查表(建议打印)
- 附录 · 图片说明与未核实事项
- B. 图片类型一览
- C. 未能实机核实 / 需以实际为准的内容
先说结论
- 证书是免费的:Let's Encrypt 免费签发、自动续期,浏览器只认「有效 / 无效」,不存在「金融级证书」。
- 先花 10 分钟做第 3 章预检(域名解析、80/443 端口、CAA、备案)——80% 的申请失败卡在这几步。
- 按网站类型选一条路线:Linux+Certbot / 宝塔 / cPanel / Cloudflare / IIS / SaaS,只读你那条路线的章节即可。
- 装完必须做四件事:强制跳转、修混合内容、确认自动续期、设置到期监控(Let's Encrypt 已不发到期提醒邮件)。
🤖 把这篇交给你的 AI 智能体
复制后粘贴给你常用的 AI 智能体(豆包、ChatGPT、Claude、Codex 等),它会按同样的步骤带你做完,并在每一步改动前先征求你的同意。不要把密码、密钥发到对话里。
查看将要复制的提示词
第0章 · 本指南怎么用 & 我该走哪条路
0.1 先说结论:证书是免费的
如果有人向你收 2500 元,说要给网站装一张“金融级 SSL 证书”,请先停一下。让浏览器显示“安全”的证书,绝大多数网站用的都是免费证书(例如 Let's Encrypt,一个由非营利组织运营、给全球七亿多个网站发证书的机构)。浏览器只判断证书有效还是无效,不存在“金融级、军工级”这种级别。
你要花的只是时间:按本指南操作,熟悉的人 20 分钟,第一次做的人留出 1~2 小时,基本都能搞定。
0.2 怎么读这本指南
- 1. 先看本章 0.3 节,用“6 道题流程图”找到你属于哪条路线(A~F)。
- 2. 读第 1~3 章:明白原理,做好部署前检查(这一步能避开 80% 的失败)。
- 3. 只读你那条路线的章节(第 4~9 章),其他章节可以跳过。
- 4. 装完后读第 10 章:强制跳转、混合内容、自动续期、到期监控,一个都不能少。
- 5. 卡住了就翻第 12 章故障排查表;想让 AI 帮你做,看第 11 章。
- 6. 最后一页是一页速查表,可以打印贴在工位上。
0.3 我该走哪条路?
网站“装证书”的方法,取决于网站放在哪里、你能登录哪种后台。按下面的流程图从第 1 题往下答:

| 路线 | 你的情况 | 去哪一章 | 难度 |
|---|---|---|---|
| A | 自己的 Linux 云服务器(阿里云、腾讯云、AWS、Vultr 等),能用 SSH 登录,网站跑在 Nginx 或 Apache 上 | 第 4 章 | ★★★ |
| B | 服务器上装了“宝塔面板” | 第 5 章 | ★ |
| C | 买的是“虚拟主机”,后台叫 cPanel | 第 6 章 | ★ |
| D | 域名接入了 Cloudflare(或者你没有服务器权限,只能管域名) | 第 7 章 | ★★ |
| E | Shopify、Wix、WordPress.com 或其他 SaaS 建站平台 | 第 9 章 | ★ |
| F | Windows 服务器,用 IIS 建站 | 第 8 章 | ★★ |
不知道自己是哪种?三个办法
办法一:直接问建站公司(最快)。 复制下面这段话发给他们:
“您好,我们网站要装免费 SSL 证书(Let's Encrypt)。请告诉我:① 网站放在哪里(哪家云服务器 / 虚拟主机 / 建站平台)?② 用的是宝塔、cPanel,还是直接 SSH?③ 域名 DNS 在哪里管理(阿里云 / 腾讯云 / Cloudflare / 其他)?④ 服务器在中国大陆吗?域名备案了吗?”
办法二:用浏览器查(不用装任何软件)。
- 1. 打开
https://dns.google/resolve?name=你的域名&type=NS(把“你的域名”换成例如my-trade-demo.com)。这是 Google 的公共 DNS 查询页,会返回一段文字。 - 2. 看
"data"后面的内容:如果出现ns.cloudflare.com,你走路线 D;出现hichina.com/alidns.com一般是阿里云,dnspod.net一般是腾讯云。 - 3. 再把地址里的
type=NS改成type=A,看到的data就是网站服务器的 IP 地址(一串数字,如47.xx.xx.xx)。

- 4. 打开
https://who.is/whois/你的域名,可以看到域名在哪家注册商、NS 是什么(部分信息可能因隐私保护被隐藏)。
办法三:用命令查(Windows 打开“命令提示符”,Mac 打开“终端”)。
nslookup -type=NS my-trade-demo.com
nslookup my-trade-demo.com
curl -sI https://my-trade-demo.com
逐行解释:
- 第 1 行:查域名的 DNS 服务器(NS,Name Server,即“这个域名的解析由谁负责”)。
- 第 2 行:查域名指向的 IP 地址。
- 第 3 行:只取网页的“响应头”(-s 安静模式,-I 只要头部)。看其中
server:一行:cloudflare→ 路线 D;nginx/Apache→ 路线 A 或 B;Microsoft-IIS→ 路线 F;出现x-shopify字样 → Shopify(路线 E)。
第1章 · 基础知识:10 分钟看懂 SSL
1.1 SSL / HTTPS 到底是什么
- HTTP:网站和访客之间传数据的“普通方式”,像寄明信片,沿途的人都能看到、能改。
- HTTPS:HTTP 加上加密(S 代表 Secure),像把信装进只有收件人能拆开的保险信封。
- SSL 证书(现在技术上叫 TLS 证书,大家习惯仍叫 SSL):网站的“电子营业执照”。浏览器靠它确认“你访问的确实是这个网站,而且连接已经加密”。

浏览器打开一个 https 网站时,会自动核对三件事:
- 1. 证书是不是由受信任的机构(CA,Certificate Authority,证书颁发机构)签发的?
- 2. 证书上写的域名和你访问的域名对不对得上?
- 3. 证书有没有过期?
三项都通过,地址栏显示正常的“安全”状态;任何一项不通过,就出现“不安全”或整页红色警告。
1.2 为什么我的网站显示“不安全”
| 你看到的 | 最可能的原因 | 本指南在哪里解决 |
|---|---|---|
地址栏左侧写着“不安全”,网址是 http:// 开头 | 根本没装证书,或装了但没有强制跳转到 https | 第 4~9 章 + 第 10.1 节 |
整页红色警告“您的连接不是私密连接”,代码 NET::ERR_CERT_DATE_INVALID | 证书过期了(最常见!) | 第 10.3 节自动续期 |
整页警告,代码 NET::ERR_CERT_COMMON_NAME_INVALID | 证书上的域名和网址对不上(例如证书只含 www,访问的是不带 www 的) | 第 12 章 |
整页警告,代码 NET::ERR_CERT_AUTHORITY_INVALID | 证书不是受信任机构签的(自签名证书、测试证书,或把 Cloudflare 源证书直接给访客用了) | 第 7、12 章 |
| 网址是 https,但仍提示“不安全”或部分图片不显示 | 混合内容:页面里还引用了 http:// 的图片、脚本 | 第 10.2 节 |
下面三张是真实浏览器(Chrome 154 中文版)里的样子:



1.3 有哪些免费证书
| 免费证书来源 | 是什么 | 有效期 | 适合谁 |
|---|---|---|---|
| Let's Encrypt | 非营利机构 ISRG 运营,全球最大的免费 CA | 目前 90 天,自动续期 | 几乎所有自管服务器、宝塔、cPanel |
| ZeroSSL | 商业公司提供的免费档:网页上手动申请免费 3 张 90 天证书;用 ACME 自动化工具申请不限数量 | 90 天 | Let's Encrypt 之外的备选 |
| Cloudflare 通用证书 | 域名接入 Cloudflare 后自动给访客端发证书,自动续期 | 由 Cloudflare 管理 | 路线 D |
| Cloudflare 源证书(Origin CA) | 只用于“Cloudflare ↔ 你的服务器”这一段,浏览器并不直接信任它 | 可选 7 天~15 年 | 路线 D 的源站 |
| 宝塔 LiteSSL、cPanel AutoSSL(Sectigo)等 | 面板内置的其他免费 DV 证书 | 约 90 天 | 路线 B、C |

1.4 证书有效期:90 天,而且会越来越短
- Let's Encrypt 现在签发的证书有效期是 90 天。
- Let's Encrypt 官方计划(2025-12-02 公告):2027-02-10 起默认改为 64 天,2028-02-16 起改为 45 天。
- 整个行业的规则(CA/浏览器论坛 SC-081 决议)也在收紧:所有公开证书最长有效期 2026-03-15 起 200 天,2027-03-15 起 100 天,2029-03-15 起 47 天。这意味着:花钱买的“一年证书”以后也不存在了。
- Let's Encrypt 已于 2025-06-04 停止发送证书到期提醒邮件。所以你必须:① 让证书自动续期;② 自己设一个到期监控(第 10.4 节)。
1.5 开始前你需要准备什么
- 1. 域名控制权:能登录域名注册商或 DNS 管理后台(阿里云、腾讯云、GoDaddy、Namecheap、Cloudflare……)。
- 2. 域名已经解析到你的服务器:即域名的 A 记录(IPv4 地址记录)指向服务器 IP。
- 3. 80 和 443 端口对外开放:80 是 http 的“门”,证书机构默认通过它来验证你;443 是 https 的“门”。
- 4. 后台管理权限:SSH(带 sudo 权限)、宝塔、cPanel、Cloudflare、Windows 管理员中的一种。
- 5. (中国大陆服务器)域名已备案,见第 3.4 节。
详细的“怎么检查每一项”,在第 3 章预检清单里。
第2章 · 自查:你的网站现在 HTTPS 正常吗?
2.1 用 Chrome 浏览器检查(最简单)
- 1. 用 Chrome 打开你的网站,网址前面输入
https://,例如https://www.my-trade-demo.com。 - 2. 看地址栏最左边:
- 新版 Chrome(117 版以后)不再显示小锁头,而是显示一个“调节”图标(两条横线带小圆点),这是正常的安全状态;
- 如果写着红色或灰色的“不安全”,或者整页红色警告,说明有问题。
- 3. 点击这个图标,弹出窗口第一行应显示“连接是安全的”。

- 4. 点“连接是安全的”,再点“证书有效”。

- 5. 弹出“证书查看器”。重点看三处:颁发对象的公用名(应是你的域名)、颁发者(如 Let's Encrypt 的 R12、E8、YE2 等中间证书名)、有效期的截止日期。

2.2 用 SSL Labs 在线检测(最全面)
SSL Labs 是 Qualys 公司提供的免费在线检测工具,不用注册。
- 1. 打开
https://www.ssllabs.com/ssltest/。 - 2. 在 Hostname 框里输入你的域名(不带 https://),点 Submit。
- 3. 如果不想让结果出现在公开榜单,勾选 “Do not show the results on the boards”。
- 4. 等 1~3 分钟,看总评分:A 或 A+ 就很好;B 也能用;出现 T(证书不受信任)或 F 必须处理。


2.3 用命令检查(给愿意多走一步的人)
curl -vI https://letsencrypt.org 2>&1 | grep -E "subject|date|issuer|verify|HTTP/"
逐段解释:curl 是一个“命令行浏览器”;-v 显示详细过程(包括证书信息);-I 只取响应头;2>&1 | grep ... 只把我们关心的几行(证书主体、起止日期、颁发者、校验结果)筛出来。把 letsencrypt.org 换成你的域名即可。

echo | openssl s_client -connect letsencrypt.org:443 -servername letsencrypt.org 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates
逐段解释:openssl s_client 像浏览器一样连接网站的 443 端口并取回证书;-servername 告诉服务器你要的是哪个域名(一台服务器常有多个网站);第二个 openssl x509 把证书内容翻译成人能看懂的字;notAfter 就是到期时间(GMT 时间,北京时间要加 8 小时)。

第3章 · 动手前的准备:预检清单
很多人失败,不是因为不会装证书,而是因为前提条件没满足。下面 7 项检查全部是“只看不改”,放心做。
3.1 预检清单(打勾再开始)
| # | 检查项 | 怎么查 | 合格标准 | 不合格怎么办 |
|---|---|---|---|---|
| 1 | 域名 A 记录指向服务器 | nslookup 你的域名,或 dns.google 查 type=A | 显示的 IP = 你的服务器公网 IP(云控制台里能看到) | 到 DNS 后台把 A 记录改成服务器 IP,等 10 分钟~24 小时生效 |
| 2 | www 也解析了 | nslookup www.你的域名 | 同上(或是指向主域名的 CNAME) | 补一条 www 的 A 记录或 CNAME 记录 |
| 3 | 没有错误的 AAAA 记录 | dns.google 查 type=AAAA | 没有结果,或是服务器真实的 IPv6 地址 | 删除指向旧服务器的 AAAA(IPv6)记录——这是验证失败的隐形杀手 |
| 4 | 80 端口外网可达 | 在另一台电脑/手机流量下打开 http://你的域名 | 能打开网页(哪怕是默认欢迎页、403 页) | 见 3.2 节放行端口 |
| 5 | 443 端口开放 | curl -vI https://你的域名 | 能看到 TLS 握手过程(即使证书报错) | 见 3.2 节 |
| 6 | 没有 CAA 记录阻挡 | dns.google 查 type=CAA | 没有结果,或包含 letsencrypt.org | 让 DNS 管理员加一条允许 letsencrypt.org 的 CAA 记录或删掉旧记录 |
| 7 | 中国大陆服务器已备案 | 问建站公司 / 云控制台备案页 | 已备案,或服务器在境外 | 见 3.4 节 |
3.2 放行 80 / 443 端口:两道门都要开
云服务器的端口有两道门:云厂商控制台里的“安全组”(像小区大门),和服务器系统里的“防火墙”(像家门)。两道都要放行 TCP 80 和 443。
第一道门:云安全组(在网页控制台点)
- 1. 登录云控制台,找到你的服务器实例。
- 阿里云 ECS:实例详情 → 安全组 → 配置规则 → 入方向 → 手动添加;
- 腾讯云 CVM:实例 → 安全组 → 修改规则 → 入站规则 → 添加规则;轻量应用服务器:实例 → 防火墙 → 添加规则;
- AWS EC2:实例 → Security → 点安全组 → Edit inbound rules → Add rule(类型选 HTTP、HTTPS)。
- 2. 添加两条规则:协议 TCP,端口 80,来源
0.0.0.0/0;协议 TCP,端口 443,来源0.0.0.0/0。 - 3. 保存。一般立即生效。

第二道门:系统防火墙(用命令)

sudo ufw status
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
逐行解释:第 1 行查看 ufw 防火墙状态,如果显示 Status: inactive(未启用),说明这道门本来就开着,后两行可以不做;第 2、3 行分别放行 80 和 443。CentOS / Rocky / AlmaLinux 用:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
--permanent 表示重启后依然有效,--reload 让设置马上生效,看到 success 即可。
3.3 DNS 生效需要时间
改了 DNS 记录或 NS 后,全世界的 DNS 服务器需要时间“同步”,通常几分钟到几小时,最长可达 48 小时。判断是否生效:用 dns.google 查(它查的是全球公共 DNS 的结果),看到新的 IP 再申请证书,可以避免“验证失败”。
3.4 中国大陆服务器与 ICP 备案(简要说明)
- 按国内规定,域名解析到中国大陆服务器、对外提供网站服务,必须先完成 ICP 备案。以阿里云为例,其官方帮助文档写明:未在阿里云备案的域名解析到阿里云中国内地服务器,会被监测系统识别并阻断网站访问。其他云厂商请咨询其客服。
- 被阻断时,Let's Encrypt 的 HTTP 验证也到不了你的网站,表现为“验证失败 / 连接超时 / 返回备案提示页”。
- 用 DNS 验证可以拿到证书,但网站本身依然会被阻断——证书解决不了备案问题,也不要尝试绕过。
- 服务器在境外(含香港)则不需要 ICP 备案。 外贸网站主要面向海外客户,很多公司本来就用境外服务器。
- 备案只和“服务器在哪里”有关,和“证书是哪家的”无关。
第4章 · 路线 A:Linux 云服务器 + Certbot(Nginx / Apache)
适合: 你或技术人员能用 SSH 登录 Linux 服务器(有 sudo 权限),网站跑在 Nginx 或 Apache 上。用时: 15~30 分钟。
Certbot 是 EFF(电子前哨基金会,美国非营利组织)开发的免费工具,能自动申请 Let's Encrypt 证书、自动改好 Nginx/Apache 配置、自动续期。官方安装向导:https://certbot.eff.org/instructions。

4.1 第 0 步:登录服务器
- 1. Windows 用户:打开“Windows 终端”或“PowerShell”(Windows 10/11 自带 ssh 命令);Mac 用户:打开“终端”。也可以用云厂商网页控制台里的“远程连接 / Workbench / VNC”。
- 2. 输入(把 IP 换成你的服务器 IP,把
root换成你的用户名):
ssh root@47.xx.xx.xx
- 3. 第一次连接会问
Are you sure you want to continue connecting (yes/no)?,输入yes回车。 - 4. 输入密码(输入时屏幕不会显示任何字符,这是正常的),回车。
- 5. 看到类似
root@server:~#或ubuntu@server:~$的提示符,说明登录成功。
4.2 第 1 步:备份配置并确认网站能用 http 打开
sudo cp -a /etc/nginx /root/nginx-backup-$(date +%F)
sudo nginx -t
curl -sI http://你的域名 | head -1
逐行解释:
- 1. 把整个 Nginx 配置目录复制一份到
/root/,文件夹名带今天日期(出问题时可以原样恢复)。Apache 换成sudo cp -a /etc/apache2 /root/apache2-backup-$(date +%F)(CentOS 是/etc/httpd)。 - 2. 检查当前配置语法。应看到
syntax is ok和test is successful。 - 3. 确认网站 http 能访问,应看到
HTTP/1.1 200 OK(或 301/403)。

4.3 第 2 步:安装 Certbot
方法一(官方推荐):snap 安装
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
逐行解释:
- 1. 先删掉系统里可能存在的旧版 certbot(没有装过会提示“未安装”,没关系)。
- 2. 用 snap(Ubuntu 自带的软件商店)安装最新版 Certbot。
--classic是官方要求的参数。 - 3. 建一个“快捷方式”,让你在任何地方都能直接输入
certbot。如果提示File exists,说明已经有了,忽略即可。
方法二:用系统软件源(apt / dnf)安装
sudo apt update
sudo apt install certbot python3-certbot-nginx
Apache 用户把第二行换成 sudo apt install certbot python3-certbot-apache。系统源的版本可能比 snap 旧一些,但同样能用、同样自带自动续期。本指南的实验环境(Debian 13)用的就是这种方式,装上的是 Certbot 4.0.0。
CentOS / RHEL / Rocky / AlmaLinux
sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx
逐行解释:第 1 行启用 EPEL(Fedora 社区维护的扩展软件源,certbot 在这里面);第 2 行安装 Certbot 和 Nginx 插件。Apache(在这些系统里叫 httpd)用户安装 python3-certbot-apache mod_ssl。老的 CentOS 7 用 yum 代替 dnf(CentOS 7 已停止维护,建议尽早升级系统)。
4.4 第 3 步:一条命令申请并安装证书(Nginx)
sudo certbot --nginx -d 你的域名 -d www.你的域名
逐段解释:--nginx 表示“用 Nginx 插件:自动验证 + 自动改配置”;每个 -d 后面跟一个域名,根域名和 www 都要写(把域名换成你自己的)。
第一次运行会问你几个问题:
- 1.
Enter email address:填一个常用邮箱(用于重要通知;Let's Encrypt 已不再发到期提醒)。 - 2.
Please read the Terms of Service ... (Y)es/(N)o:输入Y同意服务条款。 - 3.
Would you be willing ... to share your email address with the EFF:是否订阅 EFF 新闻,Y或N都可以。 - 4. 等待十几秒,看到下面这样的输出就成功了:

你应该看到的关键字:
Successfully received certificate.:证书拿到了;This certificate expires on ...:到期日(约 90 天后);Certbot has set up a scheduled task to automatically renew:自动续期已安排;Congratulations! You have successfully enabled HTTPS:已经部署到 Nginx。
Certbot 自动改了你的 Nginx 配置:加了 443 端口和证书路径,并把 80 端口的访问 301 跳转到 https。带 # managed by Certbot 的行就是它加的:

4.5 Apache 用户
sudo certbot --apache -d 你的域名 -d www.你的域名
和 Nginx 完全一样,只是把 --nginx 换成 --apache。Certbot 会新建一个 -le-ssl.conf 结尾的配置文件,并加好跳转。完成后检查:
sudo apachectl configtest
应看到 Syntax OK。CentOS 上如果报 mod_ssl 相关错误,先 sudo dnf install mod_ssl 再重试。
4.6 没法用插件时:webroot 方式
如果你的网站是 Docker、Node.js 等特殊架构,Certbot 插件识别不了,可以用 webroot(网站根目录)方式:
sudo certbot certonly --webroot -w /var/www/html -d 你的域名 -d www.你的域名
-w 后面填网站文件所在目录。Certbot 会在其中的 .well-known/acme-challenge/ 放一个临时文件,Let's Encrypt 通过 http://你的域名/.well-known/acme-challenge/... 读取它来确认你控制该域名。拿到证书后需要手动配置到网页软件里。

4.7 验证失败长什么样
下面是实验中故意关掉 80 端口上的网站后申请证书的真实输出。看到 Type: connection 和 connection refused / Timeout,就是 Let's Encrypt 连不上你的 80 端口:

| 输出里的关键词 | 意思 | 怎么办 |
|---|---|---|
Type: connection + Timeout | 80 端口被安全组/防火墙挡住 | 第 3.2 节 |
Type: connection + connection refused | 服务器没有程序在 80 端口上运行 | 启动 Nginx/Apache:sudo systemctl start nginx |
Type: dns + NXDOMAIN | 域名没有解析 | 第 3.1 节第 1~2 项 |
Type: unauthorized + 404 | 访问到的不是这台服务器,或网站有重写/跳转规则 | 检查 A/AAAA 记录、伪静态规则 |
too many failed authorizations | 失败次数太多被暂时限制(同一域名每小时 5 次) | 等一小时,先排查再试,可加 --dry-run 测试 |
4.8 第 4 步:确认自动续期
sudo certbot renew --dry-run
sudo certbot certificates
第 1 行“演练续期”:不会真正替换证书,只检查续期流程能不能走通。看到 Congratulations, all simulated renewals succeeded 即正常。第 2 行列出本机所有证书和剩余天数。


Certbot 安装时会自动建好定时任务(每天两次检查,到期前约 30 天自动续期)。确认方法:
systemctl list-timers | grep -i certbot
snap 安装的名字是 snap.certbot.renew.timer,apt 安装的是 certbot.timer(没有 systemd 的系统则是 /etc/cron.d/certbot 定时任务)。


4.9 第 5 步:打开浏览器验收
- 1. 访问
http://你的域名,应自动跳到https://。 - 2. 按第 2.1 节查看证书和到期日。
- 3. 按第 2.2 节跑一次 SSL Labs。
- 4. 用
curl -I http://你的域名确认返回301 Moved Permanently:

第5章 · 路线 B:宝塔面板
适合: 服务器装了宝塔 Linux 面板(BT Panel,国内常用的服务器管理面板)。用时: 5~10 分钟,全程点鼠标。以下菜单名称依据宝塔官方文档(docs.bt.cn,2026-09-30 更新版),不同版本可能略有差异。

5.1 申请前确认
- 1. 域名已解析到这台服务器(第 3.1 节)。
- 2. 安全组已放行 80、443(第 3.2 节)。宝塔自带的“安全”页面里也有系统防火墙,确认 80、443 已放行。
- 3. 在宝塔里已经建好这个站点,并且“域名管理”里根域名和 www 都已绑定。
- 4. 如果站点开了 CDN、反向代理或 301 重定向,先临时关闭——官方文档提示这些会导致验证或续签失败。
5.2 用“文件验证”申请 Let's Encrypt(最常用)
- 1. 登录宝塔面板(地址形如
https://服务器IP:端口/安全入口,安装时终端里给出)。 - 2. 点左侧菜单 网站。在网站列表里点你的站点域名(或该行右侧的“设置”)。

- 3. 弹出“站点修改”窗口,点左侧的 SSL。
- 4. 选 Let's Encrypt 标签(部分新版本叫“免费证书”)。
- 5. 点 申请证书。

- 6. 在弹出的对话框里依次选择:
- 证书品牌:Let's Encrypt(国际通用)。宝塔也提供 LiteSSL,官方文档称其国内访问更稳定,外贸站两者都可以;
- 证书算法:RSA2048(兼容性最好,默认推荐);
- 验证方式:文件验证;
- 域名:把根域名和 www 都勾上。
- 7. 点 申请证书,等待几十秒。

- 8. 成功后,SSL 页面会显示证书品牌、认证域名、到期时间,状态为已部署。如果需要手动点“保存”,就点一下。
你应该看到: SSL 页显示“剩余 89 天”左右,网站列表的“SSL证书”一列从“未部署”变成剩余天数。
如果失败:
| 提示 | 处理 |
|---|---|
| 验证失败 / 无法访问验证文件 | 检查域名解析、80 端口、是否开了 301/CDN/反向代理 |
| 域名未解析 / 解析错误 | 第 3.1 节,等 DNS 生效后再申请 |
| 申请过于频繁 | 等一小时再试(Let's Encrypt 频率限制) |
| 申请成功但 https 打不开 | 官方提示:检查安全组是否放行 443 端口 |
5.3 开启强制 HTTPS
- 1. 还在站点设置 → SSL 页面,找到右上角的 强制HTTPS 开关,打开。
- 2. 用无痕窗口访问
http://你的域名,应自动跳转到 https。
5.4 通配符证书:用 DNS 验证
如果你有很多子域名(shop.、m.、blog.),可以申请一张 *.你的域名 的通配符证书。通配符证书只能用 DNS 验证(证明你能修改域名的 DNS 记录)。
- 1. 先到 DNS 服务商(阿里云、腾讯云 DNSPod、Cloudflare 等)后台创建 API 密钥(AccessKey/SecretKey 或 API Token),权限尽量只给“DNS 解析管理”。
- 2. 宝塔左侧菜单 SSL → 域名管理 → DNS接口设置 → 添加DNS接口,选择服务商,填入密钥,点确定。

- 3. 回到站点设置 → SSL → Let's Encrypt → 申请证书,验证方式选 DNS 验证,选择刚添加的 DNS 接口,勾选域名(含通配符),申请。
- 4. 宝塔会自动添加验证用的 TXT 记录、完成验证、签发证书,之后也能自动续签。
5.5 确认自动续签
宝塔官方文档说明:免费证书有效期 3 个月,默认自动续签。建议在到期前一个月左右回到 SSL 页面看一眼剩余天数是否已经刷新;同时按第 10.4 节设置一个外部到期监控,双保险。
第6章 · 路线 C:cPanel 虚拟主机(AutoSSL)
适合: 你买的是虚拟主机(共享主机),后台叫 cPanel(地址常为 https://你的域名:2083 或主机商面板里的“cPanel 登录”按钮)。用时: 5 分钟。
cPanel 有一个叫 AutoSSL 的功能:自动给你账户下的所有域名申请免费 DV 证书(通常来自 Let's Encrypt 或 Sectigo),并自动续期。很多主机商默认已经开启,你只需要检查和点一下按钮。
6.1 检查并运行 AutoSSL
- 1. 登录 cPanel。
- 2. 在 Security(安全) 区域找到 SSL/TLS Status(新版 cPanel 中它也可能是 SSL/TLS Certificates 里的一个标签页;使用新版“Security hub”界面的,在 SSL Certificates 标签里点 Run AutoSSL)。顶部搜索框直接输入 “SSL” 也能找到。
- 3. 页面列出你所有的域名和证书状态。
- 4. 点 Run AutoSSL。页面显示 “AutoSSL is in progress…”,完成后自动刷新。

- 5. 看每个域名的 Certificate Status:显示 “AutoSSL Domain Validated” 和到期日期即成功。
6.2 看懂失败提示
- 有些子域名(如
mail.、cpanel.、webdisk.)没有解析到这台主机,会显示 “DNS does not resolve to this server” 之类的错误。如果你不用这些子域名,可以勾选后点 Exclude from AutoSSL(排除),不影响主站。 - 主域名和 www 失败:检查 DNS 是否指向主机商给你的 IP;检查域名 CAA 记录(cPanel 官方文档专门提醒:CAA 记录会限制哪些 CA 能发证书)。
- 找不到 SSL/TLS Status:说明主机商在后台关闭了这个功能,直接联系主机商客服,请他们“为我的账户开启 AutoSSL”。
6.3 开启强制 HTTPS 跳转
- 1. cPanel 首页 → Domains(域名) → Domains。
- 2. 找到你的主域名,把 Force HTTPS Redirect 开关打开(cPanel 官方文档:只有已经有有效证书的主域名才能开)。
- 3. 如果没有这个开关,联系主机商,或在网站根目录的
.htaccess文件里加跳转规则(WordPress 等程序也可用插件实现)。
第7章 · 路线 D:Cloudflare(没有服务器权限也能做)
适合: ① 你只能管理域名、没有服务器权限;② 你想同时获得免费 CDN 加速和防护;③ 域名已经在 Cloudflare。用时: 30 分钟操作 + 等待 NS 生效(几分钟到 24 小时)。
Cloudflare 是一家全球 CDN(内容分发网络)公司,免费计划就包含 SSL。接入后,访客先连到 Cloudflare,Cloudflare 再去你的服务器(叫“源站”,Origin)取内容。因此有两段路:访客 ↔ Cloudflare,Cloudflare ↔ 源站。

7.1 第 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)记录一条都不能少,否则企业邮箱会收不到信。网站记录保持“已代理”(橙色云朵图标)。

- 5. Cloudflare 给你两个名称服务器(Nameserver),形如
xxxx.ns.cloudflare.com、yyyy.ns.cloudflare.com(每个账号不同,以页面显示为准)。先把注册商那边原来的 NS 抄下来备用(回滚时要用)。
7.2 第 2 步:到域名注册商修改 NS
- 1. 登录你买域名的地方(阿里云、腾讯云、GoDaddy、Namecheap……)。
- 2. 找到域名的 DNS 服务器 / 修改 DNS / Nameservers 设置:
- 阿里云:域名控制台 → 域名列表 → 管理 → DNS 管理 → 修改 DNS;
- 腾讯云:域名注册 → 我的域名 → 管理 → DNS 服务器 → 修改;
- GoDaddy / Namecheap:Domain → Nameservers → Custom / Change。
- 3. 选择“自定义 DNS”,把原来的两个替换成 Cloudflare 给的两个,保存。

- 4. 回到 Cloudflare,点“检查名称服务器 / Check nameservers”。生效后,Cloudflare 会发邮件通知,域名状态变为 Active(有效)。通常几分钟到几小时,最长 24~48 小时。
7.3 第 3 步:选择 SSL/TLS 加密模式

| 模式 | 访客 ↔ Cloudflare | Cloudflare ↔ 源站 | 源站需要什么 | 建议 |
|---|---|---|---|---|
| Off | 不加密 | 不加密 | — | 不要用 |
| Flexible(灵活) | 加密 | 不加密 | 什么都不用 | 仅临时过渡;源站再强制 https 会无限跳转 |
| Full(完全) | 加密 | 加密,但不验证证书 | 任意证书(自签名也行) | 过渡用 |
| Full (strict)(完全/严格) | 加密 | 加密并验证证书 | 有效证书(Let's Encrypt 或 Cloudflare 源证书) | 推荐 |
- 1. 在 Cloudflare 后台选择你的域名 → 左侧 SSL/TLS → 概述(Overview)。
- 2. 较新的账号默认是 Automatic SSL/TLS(自动):Cloudflare 会扫描你的源站,自动选择它能支持的最安全模式(官方文档说明它不会自动降级)。如果你想自己指定,选 Custom SSL/TLS(自定义)。
- 3. 选 Full (strict)——前提是源站已经装好有效证书(下一节)。如果源站暂时还没有证书,可以先选 Full,装好后再改成 Full (strict)。


7.4 第 4 步:给源站装证书(二选一)
方式一:源站自己装 Let's Encrypt。 按第 4、5、6 章在服务器 / 宝塔 / 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。
7.5 第 5 步:开启“始终使用 HTTPS”
- 1. SSL/TLS → 边缘证书(Edge Certificates)。
- 2. 确认最上方“边缘证书”状态为 有效(Active)——这是 Cloudflare 免费发给访客端的证书,自动续期。
- 3. 打开 始终使用 HTTPS(Always Use HTTPS):所有 http 访问都 301 跳到 https。
- 4. 建议同时打开 自动 HTTPS 重写(Automatic HTTPS Rewrites):能自动修复一部分混合内容。

7.6 高级:用 API 自动化(给技术人员或 AI 智能体)
如果让技术人员或 AI 智能体用脚本完成,请创建一个权限最小的 API 令牌:Cloudflare 后台右上角头像 → 我的个人资料(My Profile) → API 令牌(API Tokens) → 创建令牌 → 自定义令牌,权限只给:
- Zone → SSL and Certificates → Edit(创建源证书)
- Zone → Zone Settings → Edit(修改加密模式、始终使用 HTTPS)
- Zone → DNS → Read(检查解析记录)
区域资源选“包括 → 特定区域 → 你的域名”,并设置令牌有效期。具体的 API 调用(已对照 Cloudflare 官方 API 文档)见本指南配套的 SKILL.md,第 11 章也有说明。用完记得在同一页面撤销令牌。
第8章 · 路线 F:Windows 服务器 + IIS(win-acme)
适合: Windows Server,网站用 IIS 搭建,你能用“远程桌面”以管理员身份登录。用时: 15 分钟。
win-acme 是 Windows 上最常用的免费 ACME 工具(开源),能自动申请 Let's Encrypt 证书、自动绑定到 IIS、自动创建“计划任务”续期。官网:https://www.win-acme.com。

8.1 准备
- 1. IIS 里网站已经能用
http://你的域名打开,且绑定(Bindings)里写了主机名(根域名和 www 各一条)。 - 2. Windows 防火墙和云安全组放行 80、443。
8.2 下载与运行
- 1. 在服务器上用浏览器打开 win-acme 官网,点 Download,下载文件名形如
win-acme.v2.x.x.xxxx.x64.trimmed.zip的版本(官方推荐大多数用户使用的 x64 trimmed 版)。 - 2. 解压到一个固定不动的文件夹,官方建议
C:\Program Files\win-acme(不要放在桌面或下载文件夹,否则以后续期任务可能找不到程序)。 - 3. 右键
wacs.exe→ 以管理员身份运行。
8.3 按菜单操作

- 1. 主菜单出现后,输入 N(Create certificate (default settings),用默认设置创建证书),回车。
- 2. 选择 Read bindings from IIS(从 IIS 读取绑定),然后按提示选择你的网站、选择要包含的域名(一般全选),选择主域名。
- 3. 第一次使用会让你输入邮箱、同意 Let's Encrypt 服务条款(输入
y)。 - 4. win-acme 自动完成 HTTP 验证 → 下载证书 → 存入 Windows 证书存储 → 自动添加/更新 IIS 的 https 绑定。
- 5. 最后它会创建一个 Windows 计划任务(Task Scheduler),每天检查并在需要时自动续期。
8.4 验证
- 1. 浏览器访问
https://你的域名,按第 2.1 节检查证书。 - 2. 再次运行
wacs.exe,选 A: Manage renewals,能看到刚才的续期计划。 - 3. 打开“任务计划程序”,确认有 win-acme 的任务。
- 4. HTTP → HTTPS 跳转:IIS 需要安装“URL 重写(URL Rewrite)”模块后添加跳转规则,或交给网站程序处理;如果用了 Cloudflare,直接开 Always Use HTTPS。
第9章 · 路线 E:SaaS 建站平台(Shopify / Wix / WordPress.com 等)
好消息:大多数 SaaS 建站平台自动、免费提供 SSL 证书,你不需要也不应该另外购买。
| 平台 | 官方说法(2026-10 核对) | 去哪里看 |
|---|---|---|
| Shopify | 自动为 myshopify.com、在 Shopify 购买的域名以及连接的第三方域名签发免费证书;第三方域名可能需要最多 48 小时 | 后台 → 设置(Settings)→ 域名(Domains) |
| Wix | 网站和连接的自定义域名默认启用 HTTPS 和免费证书 | 域名连接后自动生效 |
| WordPress.com | 所有托管的域名和子域名自动提供免费 SSL,并自动跳转 https | 无需设置 |
| 国内外贸 SaaS(Shopline、店匠等) | 一般也自动提供,但本指南未逐一核实 | 查看平台帮助中心或问客服 |
9.1 证书一直“待处理 / Pending”怎么办
- 1. 按平台的“连接域名”说明,一字不差地核对 DNS 记录(通常是一条 A 记录 + 一条 www 的 CNAME)。
- 2. 删除指向旧网站的 A 记录和 AAAA 记录(一个域名同时指向两个地方,平台验证不了)。
- 3. 如果设置过 CAA 记录,确认它允许平台使用的证书机构。
- 4. 等待 24~48 小时。仍不行就联系平台客服,并附上第 2 章的自查结果截图。
第10章 · 装好之后:这 6 件事一定要做
10.1 强制 HTTP 跳转到 HTTPS
目的:不管访客输入 http:// 还是点了旧链接,都自动到 https,并告诉搜索引擎“网站搬到 https 了”(用 301 永久跳转)。
| 路线 | 怎么开 |
|---|---|
| A Certbot | --nginx / --apache 默认已自动添加;手动配置时 Nginx 可写 return 301 https://$host$request_uri; |
| B 宝塔 | 站点设置 → SSL → 强制HTTPS |
| C cPanel | Domains → Domains → Force HTTPS Redirect |
| D Cloudflare | SSL/TLS → 边缘证书 → 始终使用 HTTPS(源站不要再重复跳转) |
| E SaaS | 平台自动处理 |
| F IIS | URL Rewrite 规则,或交给程序 / Cloudflare |
Nginx 手动写法(只在你没有用 Certbot 自动配置时才需要):
server {
listen 80;
server_name 你的域名 www.你的域名;
return 301 https://$host$request_uri;
}
逐行解释:监听 80 端口(http);匹配你的域名;把请求以 301 永久跳转到同一地址的 https 版本($host 是访客访问的域名,$request_uri 是后面的路径和参数)。
10.2 修复“混合内容”
混合内容:页面本身是 https,但里面的图片、脚本、样式、视频还是用 http:// 地址加载。浏览器会拦截或自动升级这些资源,严重时显示“不安全”、页面排版错乱、询盘表单失效。
怎么找:
- 1. Chrome 打开网页,按
F12(Mac:Option + Command + I)打开开发者工具,点 Console(控制台)。 - 2. 看是否有
Mixed Content字样的黄色/红色提示,它会写出是哪个http://地址。 - 3. 也可以在网页上右键 → 查看网页源代码,
Ctrl + F搜索http://。
怎么修:
- 把网站后台设置里的“网站地址”改成 https。WordPress:设置 → 常规 → “WordPress 地址”和“站点地址”都改为
https://。 - 把文章、产品详情里写死的
http://你的域名/...图片地址批量替换为https://(WordPress 可用数据库搜索替换类插件,操作前先备份数据库)。 - 第三方资源(在线客服、地图、统计代码)换成它们的 https 版本。
- 用 Cloudflare 的,打开“自动 HTTPS 重写(Automatic HTTPS Rewrites)”。
10.3 确认自动续期真的有效
| 路线 | 检查方法 | 正常的样子 | |
|---|---|---|---|
| A Certbot | sudo certbot renew --dry-run | Congratulations, all simulated renewals succeeded | |
| A Certbot | `systemctl list-timers \ | grep -i certbot` | 能看到 certbot.timer 或 snap.certbot.renew.timer 及下次运行时间 |
| B 宝塔 | 站点设置 → SSL | 显示自动续签已开启、剩余天数正常 | |
| C cPanel | SSL/TLS Status | 状态为 AutoSSL Domain Validated,到期前会自动更新 | |
| D Cloudflare | SSL/TLS → 边缘证书 | 边缘证书状态 Active(Cloudflare 自动续);源证书记下到期日 | |
| F win-acme | wacs.exe → A: Manage renewals;任务计划程序 | 有续期计划和计划任务 |
10.4 设置证书到期监控(强烈建议)
Let's Encrypt 已停止发送到期提醒邮件(2025-06-04 起),所以要自己设一个“闹钟”:
- 1. Red Sift Certificates Lite(原 Hardenize):Let's Encrypt 官方推荐的替代方案,免费监控最多 250 张证书,到期前发邮件提醒。需要你自己用公司邮箱注册。
- 2. 网站可用性监控服务:不少服务的免费套餐也带“SSL 证书到期提醒”,但功能和免费额度经常调整,以各家官网当前说明为准(本指南未逐一核实)。
- 3. 最简单的土办法:在手机日历里,按证书到期日提前 20 天设一个提醒,提醒内容写“检查网站证书是否已自动续期”。
10.5 更新 Google Search Console 和站点地图
- 1. 打开
https://search.google.com/search-console,登录管理网站的 Google 账号。 - 2. 推荐添加“网域(Domain)”类型资源(输入不带 https 的域名,用 DNS TXT 记录验证)——它同时覆盖 http/https 和所有子域名。若之前只添加过
http://的“网址前缀”资源,请再添加一个https://开头的网址前缀资源。 - 3. 在 站点地图(Sitemaps) 里提交 https 版本的 sitemap 地址,例如
https://www.你的域名/sitemap.xml。 - 4. 确认网站程序生成的 sitemap、canonical(规范网址)标签、内链都已经是 https。
- 5. 只换协议(http → https)、不换域名时,做好 301 跳转即可,不需要使用“更改地址”工具(该工具用于更换域名)。

10.6 最后跑一次 SSL Labs
按第 2.2 节检测,目标 A 或 A+。常见扣分项与处理:
- “Chain issues / Incomplete”(证书链不完整):Nginx 要用
fullchain.pem而不是cert.pem;宝塔/cPanel 粘贴证书时要包含中间证书。 - 支持旧协议 TLS 1.0/1.1:在 Nginx 配置里只保留
ssl_protocols TLSv1.2 TLSv1.3;(Certbot 自带的options-ssl-nginx.conf已是合理设置)。 - 评级 T:证书不受信任——多半是用了自签名证书或在源站直接暴露了 Cloudflare 源证书。
第11章 · 让你的智能体帮你部署
现在很多人会用 AI 智能体(能对话、有的还能直接在电脑或服务器上运行命令的 AI 助手)。本指南的网页版提供“一键复制给智能体”按钮:点一下,就把整套部署流程和安全规则复制下来,粘贴给你的智能体,它会一步步问你、带你做,甚至在你授权后直接执行命令。

11.1 怎么用(5 步)
- 1. 在文章页点 一键复制给智能体。屏幕下方出现“已复制”提示。想先看看复制了什么,点“查看将要复制的提示词”。
- 2. 打开你常用的 AI 智能体,新建一个对话,按
Ctrl + V(Mac:Command + V)粘贴。 - 3. 把提示词里的
<你的域名>改成你的域名,发送。 - 4. 智能体会先问你问题(网站放在哪里、账号在谁手里……),按它的问题如实回答;不知道的就说“不知道”,它会教你怎么查。
- 5. 每当它要改动东西(装软件、改配置、改 DNS、改 Cloudflare 设置)时,它会先告诉你要做什么、怎么撤销,你确认“继续”后再做。最后它会给你一张总结表:证书到期日、自动续期方式、回滚方法、你还需要做的事。

11.2 安全须知(一定要看)
11.3 给网站管理员:这个按钮怎么做
本指南附带了一个完整的“智能体就绪”内容包(文件夹 agent/):
| 文件 | 作用 |
|---|---|
ssl-deploy-skill/SKILL.md | 可安装的 Agent Skill:访谈 → 预检 → 各路线部署 → Cloudflare API 自动化 → 验证 → 续期 → 回滚,以及安全规则 |
agent-prompt.md(及 .zh.txt / .en.txt) | 中英文自包含提示词,就是按钮复制的内容 |
agent-copy-button.html | 网页组件:纯原生 JS/CSS,无第三方依赖;支持 navigator.clipboard 和 textarea 兜底、“已复制”提示、展开查看、下载 SKILL.md |
site/llms.txt、site/howto.jsonld | 机器可读入口:llms.txt 条目、schema.org HowTo 结构化数据 |
README.md | 以后每篇文章照做的模板:一个 Markdown 双胞胎页面 + 一段智能体提示词 + 一个按钮 |
组件已在无头 Chrome 154 中测试:复制到剪贴板的文字与提示词文件逐字一致(中英文均测试),非 HTTPS 页面下自动走兼容方式复制成功,“已复制”提示正常出现。
第12章 · 故障排查表
| # | 症状 | 原因 | 解决办法 |
|---|---|---|---|
| 1 | Certbot / 宝塔提示验证失败,含 Timeout / connection | 80 端口被云安全组或系统防火墙挡住 | 第 3.2 节两道门都放行 80;用手机流量访问 http://域名 测试 |
| 2 | 验证失败,含 connection refused | 网页软件没运行或没监听 80 | sudo systemctl start nginx(或 apache2/httpd);宝塔里启动 Nginx |
| 3 | 验证失败,含 NXDOMAIN / DNS problem | 域名没解析或 DNS 尚未生效 | 第 3.1、3.3 节;用 dns.google 确认后再申请 |
| 4 | 验证失败,unauthorized / 404 / 返回了别的网站内容 | A 或 AAAA 记录指向旧服务器;伪静态/跳转规则拦截了 /.well-known/acme-challenge/;CDN 缓存 | 删除旧 AAAA 记录;临时关闭 301/CDN;检查网站根目录是否正确 |
| 5 | 申请提示 CAA record 不允许 | CAA 记录未包含 letsencrypt.org | DNS 里添加 0 issue "letsencrypt.org" 的 CAA 记录或删掉旧的 |
| 6 | too many certificates / too many failed authorizations | 触发 Let's Encrypt 频率限制 | 等待(失败限制约 1 小时,重复签发限制 7 天内逐步恢复);排查时用 --dry-run |
| 7 | 浏览器 ERR_TOO_MANY_REDIRECTS(重定向次数过多) | Cloudflare 用 Flexible,源站又强制 https;或多处重复跳转 | Cloudflare 改 Full / Full (strict);只保留一处跳转 |
| 8 | Cloudflare 显示 Error 526(Invalid SSL certificate) | Full (strict) 模式下源站证书无效/过期/域名不符 | 源站装有效证书(Let's Encrypt 或源证书),或暂时改为 Full |
| 9 | Cloudflare 显示 Error 525(SSL handshake failed) / 521 | 源站 443 未开启 SSL / 源站宕机或拦截了 Cloudflare | 源站配置 443;放行 Cloudflare IP;检查网页软件状态 |
| 10 | NET::ERR_CERT_COMMON_NAME_INVALID(名称不符) | 证书没包含当前访问的域名(如少了 www);访问到了另一个站点的证书 | 重新申请时把根域名和 www 都加上;宝塔里给每个站点单独部署 |
| 11 | NET::ERR_CERT_DATE_INVALID(日期无效) | 证书已过期;偶尔是访客电脑时间错误 | 立即续期(Certbot:sudo certbot renew;宝塔/cPanel:重新申请/Run AutoSSL),再查自动续期为什么失效 |
| 12 | NET::ERR_CERT_AUTHORITY_INVALID | 自签名证书、测试证书;Cloudflare 源证书被直接访问(灰色云朵或暂停了 CF) | 换成 Let's Encrypt 证书;DNS 记录恢复橙色云朵 |
| 13 | 地址是 https,但仍提示“不安全”/部分图片不显示 | 混合内容 | 第 10.2 节 |
| 14 | 手机打不开或提示证书不可信,电脑正常 | 证书链不完整(只装了域名证书,没装中间证书) | Nginx 用 fullchain.pem;面板粘贴时包含完整证书链;SSL Labs 查 Chain issues |
| 15 | 证书到期没自动续 | 定时任务没运行;续期时 80 端口被关;后来开了 CDN/301;改过网页配置 | sudo certbot renew --dry-run 看报错;宝塔查看续签日志;按 1~4 行排查 |
| 16 | 中国大陆服务器,访问显示“网站未备案”提示或验证一直失败 | 域名未 ICP 备案(或未在当前云厂商接入备案),访问被云厂商阻断 | 完成备案 / 接入备案;或把网站迁到境外服务器(第 3.4 节) |
| 17 | 改完 Nginx 配置后网站全挂 | 配置语法错误 | sudo nginx -t 查看错误行;用备份恢复:sudo cp -a /root/nginx-backup-日期/. /etc/nginx/ 后 sudo systemctl reload nginx |
| 18 | SaaS 平台证书一直 Pending | DNS 记录不对、旧记录冲突、CAA 限制 | 第 9.1 节 |
第14章 · 一页速查表(建议打印)
| 步骤 | 做什么 | 关键命令 / 菜单 | 成功标志 |
|---|---|---|---|
| ① 选路线 | 按第 0.3 节 6 道题 | NS 含 cloudflare → D;有宝塔 → B;cPanel → C;IIS → F;SaaS → E;其余 → A | 知道去哪一章 |
| ② 预检 | 解析、端口、CAA、备案 | dns.google 查 A/AAAA/CAA;手机流量打开 http://域名 | 7 项全部打勾 |
| ③ 部署 A | Linux + Certbot | sudo snap install --classic certbot → sudo certbot --nginx -d 域名 -d www.域名 | Congratulations! ... enabled HTTPS |
| ③ 部署 B | 宝塔 | 网站 → 站点 → SSL → Let's Encrypt → 申请证书 → 强制HTTPS | 显示剩余约 89 天 |
| ③ 部署 C | cPanel | Security → SSL/TLS Status → Run AutoSSL;Domains → Force HTTPS Redirect | AutoSSL Domain Validated |
| ③ 部署 D | Cloudflare | 改 NS → SSL/TLS 概述 Full (strict) → 边缘证书 Always Use HTTPS | 边缘证书 Active |
| ③ 部署 E | SaaS | 连接域名,等待自动签发 | 后台显示 SSL 已启用 |
| ③ 部署 F | IIS | 管理员运行 wacs.exe → N → Read bindings from IIS | IIS 出现 https 绑定 |
| ④ 跳转 | http → https | 见第 10.1 节表格 | curl -I http://域名 返回 301 |
| ⑤ 混合内容 | F12 → Console 查 Mixed Content | 网站地址改 https;替换 http 链接 | 控制台无 Mixed Content |
| ⑥ 续期 | 演练续期 | sudo certbot renew --dry-run | all simulated renewals succeeded |
| ⑦ 监控 | 到期提醒 | Red Sift Certificates Lite / 日历提醒 | 收到确认邮件 |
| ⑧ 验收 | 全面检测 | ssllabs.com/ssltest;电脑+手机;带/不带 www | A / A+ |
| ⑨ SEO | Search Console | 添加网域资源,提交 https sitemap | 站点地图状态“成功” |
附录 · 图片说明与未核实事项
B. 图片类型一览
- 真实截图(Chrome 154 实际浏览器或无头浏览器截取):Let's Encrypt 首页、Certbot 安装向导、宝塔官网、Cloudflare 免费计划页与官方文档页、win-acme 官网、SSL Labs 首页与 letsencrypt.org 检测结果、dns.google 查询结果、Chrome 站点信息弹窗与证书查看器(letsencrypt.org)、wrong.host.badssl.com 警告页、实验环境中的“不安全”页面 / 过期证书页 / 不受信任证书页、“一键复制给智能体”组件。
- 真实命令输出(实验服务器 Debian 13 上真实运行,用终端样式排版):certbot --nginx、Nginx 配置、certbot certificates、renew --dry-run、验证失败、nginx -t、301 跳转、certbot 定时器文件;curl / openssl 查看真实网站证书。
- 示意图(本指南自绘,菜单名称依据官方文档):路线流程图、HTTP/HTTPS 原理图、Cloudflare 加密模式图、DV/OV/EV 对比、宝塔 4 张、cPanel 1 张、Cloudflare 4 张、注册商改 NS、云安全组、Google Search Console、win-acme 菜单、systemctl 定时器输出。
C. 未能实机核实 / 需以实际为准的内容
- 宝塔、cPanel、Cloudflare 后台、云厂商控制台、Google Search Console:无法登录真实后台,界面为依据官方文档绘制的示意图;不同版本按钮位置、颜色、中文译名可能不同。
- Cloudflare 后台中文菜单译名(如“边缘证书”“源服务器”)按常见译法书写,英文名称以官方文档为准。
- win-acme 未在 Windows Server 上实际运行;菜单文字取自官方源码。
- systemd 定时器的输出为模拟(实验容器无 systemd);定时器文件内容为真实文件。
- 国内外贸 SaaS 平台(Shopline、店匠等)的 SSL 细节未逐一核实。
- 各网站监控服务的免费额度和功能会变化,未逐一核实。
- 付费 OV/EV 证书价格为市场大致区间,仅供参考。
- 备案相关规定以工信部和各云厂商最新要求为准。
答疑
常见问题
免费证书和 2500 元的「金融级证书」到底有什么区别?
加密强度没有区别:所有公开受信任的证书用同样的 TLS 协议和加密算法,浏览器只认「有效 / 无效」。证书按审核内容分三类:DV 只验证域名控制权(免费证书都是 DV);OV 额外人工核实企业真实存在,证书里写有公司名(访客要点开证书详情才看得到);EV 审核更严格,但 Chrome 等主流浏览器 2019 年起已取消地址栏绿色公司名显示,现在 EV 和 DV 在地址栏的样子一样。「金融级」不是任何标准里的术语,是营销说法。
那什么时候才值得买付费的 OV / EV 证书?
客户、银行、招标文件或合规审计明确要求证书里有公司信息;某些老旧系统或特殊客户端需要特定证书链兼容;需要证书机构的人工技术支持或保险赔付条款;国内合规场景需要国密 SM2 或国产 CA 品牌。普通展示站、询盘站、独立站用免费 DV 完全足够,付费前先对照价格对比页判断是否被多收钱。
什么是通配符证书?我需要吗?
*.你的域名 覆盖所有一级子域名(www.、shop.),但不覆盖根域名 你的域名 本身,也不覆盖 a.b.你的域名。免费证书支持通配符,但必须用 DNS 验证。子域名不多时,直接把每个子域名写进同一张证书更简单。
一张证书能包含多个域名吗?
可以。Certbot 写多个 -d 参数、宝塔勾选多个域名、cPanel AutoSSL 自动包含账户下域名;Let's Encrypt 一张证书最多包含 100 个域名。不同根域名也可以放在一张证书里,但一般建议每个网站各用一张,互不影响。
换服务器 / 换建站公司,证书怎么办?
在新服务器上重新申请即可:免费、几分钟,不需要「迁移证书」。切换 DNS 前先在新服务器上准备好网站,DNS 生效后立即申请证书,避免出现证书错误窗口期。
为什么我的 Chrome 里没有小锁头了?
Chrome 从 117 版起把地址栏的小锁换成了「调节」图标(两条横线带小圆点),这代表正常的安全状态,不代表不安全。真正的不安全会明确写出「不安全」字样或出现整页红色警告。点击该图标后能看到「连接是安全的」「证书有效」。
核实
资料来源与核实记录
价格、政策与版本信息均注明来源和核实日期。
| 事实 | 来源 | 核实日期 |
|---|---|---|
| Certbot 官方安装说明(Nginx / snap) | certbot.eff.org | 2026-10-10 |
| Let's Encrypt 证书有效期将缩短至 64/45 天(公告 2025-12-02) | letsencrypt.org | 2026-10-10 |
| Let's Encrypt 到期提醒邮件服务已结束(2025-06-26) | letsencrypt.org | 2026-10-10 |
| Let's Encrypt 频率限制(每域名每周 5 次签发等) | letsencrypt.org | 2026-10-10 |
| Let's Encrypt 验证方式(HTTP-01 / DNS-01) | letsencrypt.org | 2026-10-10 |
| CA/Browser Forum SC-081v3 证书有效期时间表(200→100→47 天) | cabforum.org | 2026-10-10 |
| Google 安全博客:Chrome 154 起默认「始终使用安全连接」 | security.googleblog.com | 2026-10-10 |
| Cloudflare 加密模式(Off/Flexible/Full/Full strict) | Cloudflare Docs | 2026-10-10 |
| Cloudflare Origin CA 源证书(浏览器不信任,最长 15 年) | Cloudflare Docs | 2026-10-10 |
| 宝塔面板官方文档:网站 SSL 证书部署 | docs.bt.cn | 2026-10-10 |
| cPanel 文档:SSL/TLS Status(AutoSSL)与 Domains(Force HTTPS Redirect) | docs.cpanel.net | 2026-10-10 |
| win-acme 入门(Windows IIS 自动申请与续期) | win-acme.com | 2026-10-10 |
| 阿里云帮助中心:未备案域名解析至中国内地服务器将被阻断 | help.aliyun.com | 2026-10-10 |
| ZeroSSL 价格与 ACME 文档 | zerossl.com | 2026-10-10 |
更新记录
2026-10-12 · v1.0:上线:指南全文(14 章)入站,配图从 docx 提取重排;FAQ 与来源表结构化。
本专题全文以 CC BY 4.0 协议开源,可转载、改编,请注明出处:GitHub · iPythoning/ssl-guide-zh
交给我们
不想自己动手?
泓森互联提供 SSL 证书终身维护服务:部署、监控、自动续期与失效应急,一次购买长期有效。服务范围与价格以服务页为准;也可以先做免费体检,把情况摸清楚再决定。
留个联系方式,我们帮你看看
不确定自己的网站是什么情况?留下信息,或直接 预约诊断,我们把体检结果和修复路径说清楚。