---
title: 路线 B：宝塔面板 5 分钟装好证书
url: https://www.paibaowork.com/ssl/deploy/baota/
last_verified: 2026-10-12
version: v1.0
---

## 一张表看懂

| 项目 | 内容 |
|---|---|
| 适合谁 | 服务器上装了宝塔 Linux 面板（BT Panel，国内常用的服务器管理面板），你能登录面板【判断】 |
| 用时 | 5～10 分钟，**全程点鼠标，不用敲命令**【估算】 |
| 难度 | ★（六条路线里最简单的一条） |
| 花钱 | 0 元：面板内置 Let's Encrypt，免费签发、默认自动续签 |
| 前置条件 | 域名已解析到这台服务器；安全组和宝塔「安全」页面都放行 80、443；站点已建好且「域名管理」里绑定了根域名和 www |
| 成功标志 | 网站列表的「SSL证书」列从「未部署」变成「剩余 89 天」左右；`http://` 自动跳到 `https://` |

菜单名称依据宝塔官方文档（docs.bt.cn，2026-09-30 更新版），不同版本可能略有差异——以你看到的实际界面为准。

![【真实截图】宝塔面板官网首页（bt.cn）](/ssl/images/guide/r14_bt_home.png)

## 什么时候选这条路，什么时候别选

选它，如果你：

- 服务器上装了宝塔面板（登录地址形如 `https://服务器IP:端口/安全入口`，安装时终端里给出）；
- 你不想敲命令，只想点鼠标；
- 网站由面板里的 Nginx 或 Apache 提供（面板默认装的是 Nginx）。

别选它，如果你：

- 服务器上没有面板、你习惯用 SSH——走[路线 A：Linux + Certbot](/ssl/deploy/certbot/)，命令更可控；
- 后台是 cPanel（虚拟主机）——见〔路线 C：cPanel〕；
- 没有服务器权限、只能管域名——见〔路线 D：Cloudflare〕；
- 网站建在 Shopify / Wix / WordPress.com——平台会自动签发，见〔路线 E：SaaS 平台〕。

不确定自己属于哪条路线？先看 6 道题流程图，或读《[网站 SSL 证书免费部署完全指南](/ssl/deploy/ssl-guide/)》第 0.3 节：

![【示意图】6 道题找到你的路线](/ssl/images/guide/d01_flowchart.png)

## 动手前的 4 项确认

这四项都是「只看不改」的检查，先做完再点申请，能避开绝大多数失败。

| # | 确认项 | 在哪看 | 合格标准 |
|---|---|---|---|
| 1 | 域名已解析到这台服务器 | 浏览器打开 dns.google 查 `type=A`，或面板「网站 → 域名管理」 | 显示的 IP 就是这台服务器的公网 IP |
| 2 | 80、443 端口放行 | 云控制台安全组 + 宝塔左侧「安全」页面 | 两处都放行 TCP 80、443 |
| 3 | 站点已建好、域名已绑定 | 面板「网站」列表 → 该站点的「域名管理」 | **根域名和 www 都已绑定** |
| 4 | 没有会干扰验证的规则 | 该站点是否开了 CDN、反向代理、301 跳转 | 先**临时关闭**这些功能再申请 |

![【真实截图】在浏览器里用 dns.google 查询域名解析（返回的就是 IP 地址）](/ssl/images/guide/r16_dnsgoogle.png)

> [!TIP] 宝塔自带的「安全」页面也要看
> 云控制台的**安全组**（像小区大门）和服务器系统的**防火墙**（像家门）是两道门，宝塔左侧菜单「安全」里能直接管理系统防火墙——确认 80、443 都在放行列表里。只放行一道，验证照样失败。

![【示意图】云安全组添加 80/443 入方向规则（以阿里云 ECS 为例，菜单名称以实际控制台为准）](/ssl/images/guide/m11_secgroup.png)

> [!WARNING] 中国大陆服务器要先备案
> 域名解析到中国大陆服务器对外提供网站服务，必须先完成 ICP 备案，否则云厂商会阻断访问，证书也申请不下来（验证请求到不了你的网站）。**证书解决不了备案问题**，也不要尝试绕过。服务器在境外（含香港）则不需要备案。

## 步骤总览

| 步骤 | 做什么 | 菜单路径 | 成功标志 |
|---|---|---|---|
| 1 | 登录面板 | `https://服务器IP:端口/安全入口` | 进入面板首页 |
| 2 | 申请证书 | 网站 → 站点 → 设置 → SSL → Let's Encrypt → 申请证书 | SSL 页显示「剩余 89 天」左右 |
| 3 | 开强制跳转 | 站点设置 → SSL → 右上角「强制HTTPS」 | `http://` 自动跳 `https://` |
| 4 | 验证 | 浏览器 + SSL Labs | 「连接是安全的」；评级 A/A+ |
| 5 | 确认自动续签 | 站点设置 → SSL | 显示自动续签已开启、剩余天数正常 |

## 第 1 步：登录宝塔面板

1. 打开浏览器，输入面板地址：`https://服务器IP:端口/安全入口`（安装宝塔时终端里会打印这个地址和初始账号密码，建议当时就截图保存）。
2. 用账号密码登录。如果记不清地址，可以看服务器上的面板配置，或在云控制台用「远程连接」登录服务器后运行 `bt default` 查看。
3. 登录后左侧菜单能看到「网站」「FTP」「数据库」「安全」等项。

> [!WARNING] 面板账号也是「钥匙」
> 面板能改服务器上的一切，账号密码和服务器密码同等重要。**不要在微信、邮件里明文发送面板密码**；给外部人员时用面板的子账号功能，事后再收回。登录地址里的「安全入口」那一串字符也是保护措施，不要随手发到群里。

## 第 2 步：用「文件验证」申请 Let's Encrypt（最常用）

1. 点左侧菜单 **网站**。在网站列表里点你的**站点域名**（或该行右侧的「设置」）。

![【示意图】宝塔：网站列表，点击站点名或「设置」](/ssl/images/guide/m01_bt_sitelist.png)

2. 弹出「站点修改」窗口，点左侧的 **SSL**。
3. 选 **Let's Encrypt** 标签（部分新版本叫「免费证书」）。
4. 点 **申请证书**。

![【示意图】宝塔：站点设置 → SSL → Let's Encrypt → 申请证书；右上角是「强制HTTPS」开关](/ssl/images/guide/m02_bt_ssl.png)

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

![【示意图】宝塔：申请证书对话框](/ssl/images/guide/m03_bt_apply.png)

7. 成功后，SSL 页面会显示证书品牌、认证域名、到期时间，状态为已部署。如果需要手动点「保存」，就点一下。

**你应该看到（成功标志）：** SSL 页显示「剩余 89 天」左右，网站列表的「SSL证书」一列从「未部署」变成剩余天数。

> [!TIP] 一张证书能放几个域名
> 申请时勾选的域名会写进同一张证书。子域名不多时，全部勾上最省事；如果子域名很多（`shop.`、`m.`、`blog.`），再考虑通配符证书（见本页后面的「通配符证书」一节）。

### 申请失败怎么办

| 提示 | 处理 |
|---|---|
| 验证失败 / 无法访问验证文件 | 检查域名解析、80 端口，以及是否开了 301 / CDN / 反向代理 |
| 域名未解析 / 解析错误 | 用 dns.google 确认 A 记录，等 DNS 生效后再申请 |
| 申请过于频繁 | 等一小时再试（Let's Encrypt 有频率限制：同一组域名 7 天内最多签发 5 次） |
| 申请成功但 https 打不开 | 官方提示：检查安全组是否放行 443 端口 |
| 提示 CAA 记录不允许 | 在 DNS 里添加 `0 issue "letsencrypt.org"`，或删掉旧的 CAA 记录 |

## 第 3 步：开启强制 HTTPS

1. 还在站点设置 → SSL 页面，找到右上角的 **强制HTTPS** 开关，打开。
2. 用无痕窗口访问 `http://你的域名`，应自动跳转到 https。

> [!WARNING] 开强制 HTTPS 前先检查跳转规则
> 宝塔官方提示：开启强制 HTTPS 之前，确保站点没有做其他 301 跳转（伪静态规则或 JS 跳转），否则可能出现无限跳转（浏览器报 `ERR_TOO_MANY_REDIRECTS`）。有旧跳转规则就先关掉，再开这个开关。

## 第 4 步：验证（浏览器 + 命令 + 在线检测）

面板说「已部署」不等于访客看到的就是安全。三件事都做一遍：

1. **浏览器**：访问 `https://你的域名`，点地址栏左侧图标 → 应显示「连接是安全的」→ 再点「证书有效」，核对颁发对象（你的域名）和有效期。

![【真实截图】点击地址栏左侧图标后弹出的窗口](/ssl/images/guide/r07_sitepopup1.png)

![【真实截图】点「连接是安全的」后看到「证书有效」](/ssl/images/guide/r08_sitepopup2.png)

2. **四种网址都试**：`https://你的域名`、`https://www.你的域名`、`http://你的域名`、`http://www.你的域名`。前两个应正常，后两个应**自动跳转**到 https。手机上也打开一次（手机浏览器对证书链问题更敏感）。
3. **命令确认**（在服务器上或用本机终端）：

```bash
curl -I http://你的域名
curl -vI https://你的域名 2>&1 | grep -E "subject|date|issuer|verify|HTTP/"
```

第 1 行应返回 `301 Moved Permanently`；第 2 行应看到 `SSL certificate verify ok` 和正确的到期日。

![【真实命令输出】curl 查看证书：subject（颁发给谁）、起止日期、issuer（谁颁发的）、verify ok（校验通过）](/ssl/images/guide/t06_curl.png)

4. **在线检测**：在 `https://www.ssllabs.com/ssltest/` 输入域名，目标 **A 或 A+**。

![【真实截图】SSL Labs 检测首页](/ssl/images/guide/r10_ssllabs_home.png)

![【真实截图】SSL Labs 检测结果示例（letsencrypt.org 获得 A+）](/ssl/images/guide/r11_ssllabs_result.png)

> [!NOTE] 评级扣分的常见原因
> 「Chain issues / Incomplete」（证书链不完整）：在面板里粘贴证书时，要包含**中间证书**（用面板的「申请证书」自动部署一般不会出现这个问题，手动粘贴证书文件时才会）。评级 T：证书不受信任——多半是把自签名证书或 Cloudflare 源证书直接用在了访客端。

## 第 5 步：确认自动续签

宝塔官方文档说明：免费证书有效期 3 个月，**默认自动续签**。但「默认」不等于「一定成功」，请做两件事：

1. **到期前一个月左右**回到 站点设置 → SSL 页面，看剩余天数是否已经刷新（例如从「剩余 30 天」变成「剩余 89 天」，说明续签成功）。
2. **设置外部到期监控**做双保险：用免费的证书监控服务（到期前发邮件），或在手机日历里按到期日提前 20 天设提醒，内容写「检查网站证书是否已自动续签」。

> [!WARNING] Let's Encrypt 已不再发到期提醒邮件
> Let's Encrypt 已于 2025-06-04 停止发送证书到期提醒邮件。而且证书有效期在收紧：现在 90 天，官方计划 2027-02-10 起默认 64 天、2028-02-16 起 45 天。**只靠「默认自动续签」这一层是不够的**，外部监控必须有。

## 通配符证书：用 DNS 验证

如果你有很多子域名（`shop.`、`m.`、`blog.`），可以申请一张 `*.你的域名` 的**通配符证书**。通配符证书**只能用 DNS 验证**（证明你能修改域名的 DNS 记录）。

1. 先到 DNS 服务商（阿里云、腾讯云 DNSPod、Cloudflare 等）后台创建 API 密钥（AccessKey/SecretKey 或 API Token），权限尽量只给「DNS 解析管理」。
2. 宝塔左侧菜单 **SSL** → **域名管理** → **DNS接口设置** → **添加DNS接口**，选择服务商，填入密钥，点确定。

![【示意图】宝塔：SSL → 域名管理 → DNS接口设置 → 添加DNS接口](/ssl/images/guide/m04_bt_dnsapi.png)

3. 回到 站点设置 → SSL → Let's Encrypt → 申请证书，**验证方式选 DNS 验证**，选择刚添加的 DNS 接口，勾选域名（含通配符），申请。
4. 宝塔会自动添加验证用的 TXT 记录、完成验证、签发证书，之后也能自动续签。

> [!WARNING] 密钥别贴进聊天
> DNS 接口的密钥等于「改你域名解析的钥匙」。在面板输入框里自己填，不要发给任何人（包括 AI 智能体）；万一发过，事后立刻去服务商后台作废并重新生成。权限只给「DNS 解析管理」，不要给账号的完全控制权限。

> [!TIP] 名词：TXT 记录、通配符
> **TXT 记录**：一条写着任意文字的 DNS 记录，常用来「证明身份」。**通配符证书** `*.你的域名`：覆盖所有一级子域名（`www.`、`shop.`），但**不包括** `你的域名` 本身，也不覆盖 `a.b.你的域名`，所以申请时通常同时勾选根域名。

## 宝塔还是 Certbot：怎么选

两条路线都免费、都自动续期，区别只在「操作方式」和「可控程度」。

| 对比项 | 路线 B · 宝塔面板 | 路线 A · Linux + Certbot |
|---|---|---|
| 操作方式 | 点鼠标，不用敲命令 | 敲几条命令 |
| 用时 | 5～10 分钟 | 20～30 分钟 |
| 适合谁 | 不想碰命令的老板/运营；服务器本来就装了面板 | 有 SSH 权限、愿意学一次的技术人员或建站方 |
| 证书在哪 | 面板自动保存并在站点配置里引用 | `/etc/letsencrypt/live/域名/`（fullchain.pem + privkey.pem） |
| 续期 | 面板默认自动续签 | certbot 定时器自动续期（可 `--dry-run` 演练验证） |
| 出问题排查 | 看面板提示 + 续签状态 | 看命令输出关键词，定位更精确 |
| 换服务器 | 在新服务器上重新申请 | 在新服务器上重新申请 |

> [!TIP] 两者可以互相印证
> 如果你有 SSH 权限但习惯用面板，可以用面板装证书、再用命令验证结果：`curl -vI https://你的域名` 看 `SSL certificate verify ok`，`echo | openssl s_client -connect 你的域名:443 -servername 你的域名 2>/dev/null | openssl x509 -noout -subject -issuer -dates` 看到期日。命令不会骗人，面板显示也不会骗人——两个对不上，就说明还有一层没生效（常见的是 CDN 缓存）。

![【真实命令输出】openssl 查看到期日；下方是访问过期证书网站时 curl 的报错](/ssl/images/guide/t07_openssl.png)

## 申请与续签前的小抄（照着打勾）

申请失败和续签失败的原因高度重合，动手前把这几项过一遍：

- [ ] 域名 A 记录指向这台服务器的公网 IP（用 dns.google 查 `type=A` 对一遍）
- [ ] 没有多余的 AAAA（IPv6）记录指向旧服务器
- [ ] 云安全组放行 TCP 80、443
- [ ] 宝塔左侧「安全」页面里系统防火墙也放行 80、443
- [ ] 站点「域名管理」里根域名和 www 都绑定好了
- [ ] 站点的 CDN、反向代理、301 跳转已**临时关闭**
- [ ] 面板账号能正常登录、有该站点的管理权限
- [ ] 服务器在中国大陆的话，域名已完成 ICP 备案

> [!NOTE] 为什么续签前也要检查
> 续签走的是同一套验证流程：如果这三个月里你把 80 端口关了、把 DNS 换到了别处、或者给站点加了 CDN/301，续签就可能悄悄失败——而证书过期后网站会整页红色警告。所以「到期前一个月回来看一眼剩余天数」这个动作很重要。

## 宝塔 + CDN（Cloudflare 等）同时用要注意什么

很多企业网站在服务器前面挂了一层 Cloudflare（免费 CDN + 防护）。这时证书有两段：**访客 ↔ Cloudflare** 和 **Cloudflare ↔ 你的服务器**。两段都要有效，且加密模式要选对，否则会出现下面这些错误。

| 浏览器看到的错误 | 原因 | 怎么办 |
|---|---|---|
| `ERR_TOO_MANY_REDIRECTS`（重定向次数过多） | Cloudflare 用了 Flexible（只加密访客那段），而源站（宝塔）又开了强制 HTTPS，两边来回跳 | Cloudflare 的 SSL/TLS 模式改成 **Full / Full (strict)**；同时只保留一处跳转 |
| Error 526（Invalid SSL certificate） | Full (strict) 模式下，源站证书无效/过期/域名不符 | 在宝塔里给源站装一张有效证书（本文这套流程），或暂时把模式改为 Full |
| Error 525（SSL handshake failed）/ 521 | 源站 443 没开 SSL，或源站宕机、拦住了 Cloudflare | 确认宝塔站点已开 SSL、443 放行、网页软件在运行 |
| 地址是 https 但提示「不安全」/图片不显示 | 混合内容：页面里还有 `http://` 的资源 | 见下一节「修混合内容」 |
| 证书显示的是 Cloudflare 的证书而不是 Let's Encrypt | 正常现象：访客看到的是 Cloudflare 边缘证书 | 源站证书在「Cloudflare ↔ 服务器」那段生效，无需改 |

> [!WARNING] 源站证书不能直接用 Cloudflare 的「源证书」给访客
> Cloudflare 的 Origin CA 源证书只在「Cloudflare ↔ 你的服务器」这段有效，浏览器并不信任它。如果域名暂停了 Cloudflare（灰色云朵）或直接访问源站 IP，就会报 `NET::ERR_CERT_AUTHORITY_INVALID`。源站最好还是装一张 Let's Encrypt 证书。

## 装好之后还要做的三件事

**① 修混合内容。** 页面本身是 https，但里面的图片、脚本、样式还是 `http://` 地址，浏览器仍会提示「不安全」，严重时排版错乱、询盘表单失效。找法：Chrome 打开网页按 `F12`（Mac：`Option + Command + I`）→ Console（控制台）→ 找 `Mixed Content` 字样，它会写出是哪个 `http://` 地址；也可以在网页上右键 → 查看网页源代码 → 搜 `http://`。修法：

- 把网站后台设置里的「网站地址」改成 https（WordPress：设置 → 常规，「WordPress 地址」和「站点地址」都改）；
- 把文章、产品详情里写死的 `http://你的域名/...` 图片地址批量替换为 `https://`（**操作前先备份数据库**）；
- 第三方资源（在线客服、地图、统计代码）换成它们的 https 版本；
- 用了 Cloudflare 的，打开「自动 HTTPS 重写（Automatic HTTPS Rewrites）」。

**② HSTS 先别急着开。** HSTS（HTTP 严格传输安全）会让浏览器在一段时间内「只认 https」，很安全，但一旦证书出问题，访客连「继续访问」按钮都没有。建议全站 https 稳定运行几周后再考虑，并从较短的有效期开始。

**③ 更新 Google Search Console。** 网站从 http 变成 https 后，去 `https://search.google.com/search-console` 添加 https 版本的资源（推荐用「网域」类型，用 DNS TXT 记录验证，一次覆盖 http/https 和所有子域名），并在「站点地图」里提交 https 版本的 sitemap，例如 `https://www.你的域名/sitemap.xml`。只换协议、不换域名时，做好 301 跳转即可，不需要用「更改地址」工具。

![【示意图】Google Search Console：添加网域资源并提交 https 站点地图](/ssl/images/guide/m12_gsc.png)

## 点「申请证书」之后，后台发生了什么（30 秒看懂）

明白了原理，失败时你就知道该查哪里：

1. 面板向 Let's Encrypt 说：「我想给 `你的域名` 申请证书。」
2. Let's Encrypt 反问：「你怎么证明这个域名是你的？」——这就是**验证**。
3. 选了**文件验证**时，面板会在你网站根目录的 `.well-known/acme-challenge/` 下放一个临时文件，内容是一串随机字符；Let's Encrypt 从 `http://你的域名/.well-known/acme-challenge/...` 把这个文件读回来，读到了就证明「你能控制这个域名」。
4. 验证通过，Let's Encrypt 签发证书，面板自动把它配置到站点并重新加载网页软件。
5. 以后每次续签，重复第 3 步。

> [!TIP] 所以这三件事最要命
> ① 域名要指向**这台**服务器（否则验证文件根本不在它读的地方）；② **80 端口**要通（验证走的是 http）；③ 网站根目录不能被重写规则、CDN 或反向代理挡住（否则读到的不是那个临时文件）。这也是「申请失败」几乎全部的成因。

![【真实截图】Let's Encrypt 官方文档「验证方式（Challenge Types）」页面，介绍 HTTP-01 与 DNS-01](/ssl/images/guide/r17_le_challenge_types.png)

**DNS 验证**（通配符证书必须用）是另一条路：面板不往网站放文件，而是往你的 DNS 里写一条 TXT 记录，Let's Encrypt 去 DNS 里读。好处是不依赖 80 端口、网站开着 CDN 也能过；代价是要先把 DNS 服务商的 API 密钥交给面板。

## 站点设置里那几个页面和证书的关系

「站点修改」窗口左侧有好几项，第一次用容易点错。和证书有关的只有两项，其余是干扰项：

| 页面 | 作用 | 和证书的关系 |
|---|---|---|
| **SSL** | 申请/查看证书、开强制 HTTPS | 就是本文操作的地方 |
| **域名管理** | 这个站点绑定哪些域名 | 申请证书时能勾选的域名来自这里；**没绑定 www 就勾不到 www** |
| 伪静态 | URL 重写规则 | 规则太激进可能拦住 `/.well-known/acme-challenge/`，导致验证失败 |
| 反向代理 | 把请求转发到别的程序（Node、Docker 等） | 开着的时候，验证文件可能被转发走；申请前先临时关掉 |
| 配置文件 | 直接看/改 Nginx 配置 | 面板会自动写入证书路径（形如 `ssl_certificate`），一般不用手改 |
| 网站目录 / 默认文档 | 网站文件放在哪 | 文件验证就发生在网站根目录，路径不对会验证失败 |
| 运行目录 | 程序实际运行的目录 | 如果网站跑在子目录里，验证文件路径可能对不上，此时改用 DNS 验证更省事 |

> [!NOTE] 拿不准就先只动 SSL 这一页
> 其余页面在申请证书期间**保持原样**就好。真的需要改动时，先截图存一份原设置——出问题时照着截图退回去，比回忆可靠。

## 证书到期的时间线（照这个节奏走）

免费证书不会「一次装好管一辈子」，它会不断到期、不断自动续签。按下面的时间线走，就不会突然发现网站红屏：

| 时间点 | 你该做什么 |
|---|---|
| 申请成功当天 | 确认浏览器显示「连接是安全的」，SSL 页显示「剩余 89 天」左右 |
| 顺手做的事 | 打开强制 HTTPS；修混合内容；注册一个免费的到期监控 |
| 到期前约 30 天 | 面板会自动尝试续签（正常情况你什么都不用做） |
| 到期前约 30 天（人工） | 回 SSL 页面看一眼剩余天数是否已刷新；这是「双保险」的第一层 |
| 到期前 20 天 | 外部监控/日历提醒会响；如果剩余天数没刷新，说明自动续签失败了，按排查表处理 |
| 到期日 | 如果前面都没做，网站会整页红色警告（`NET::ERR_CERT_DATE_INVALID`），立即回面板重新申请 |

> [!WARNING] 有效期只会越来越短
> Let's Encrypt 现在签发 90 天有效期，官方计划 2027-02-10 起默认改为 64 天、2028-02-16 起改为 45 天；行业规则（CA/浏览器论坛 SC-081 决议）也在收紧，所有公开证书最长有效期 2026-03-15 起 200 天、2027-03-15 起 100 天、2029-03-15 起 47 天。**这意味着「自动续期 + 到期监控」会越来越重要**，靠人记着续期一定出事。

## 同一台服务器有多个网站时

一台服务器上跑几个网站很常见（主站、商城、二级域名站）。要点：

1. **每个站点单独申请、单独部署。** 在「网站」列表里对每个站点各走一遍本文第 2 步——不要把 A 站点的证书粘到 B 站点上，否则访问 B 会报「名称不符」。
2. **一个站点对应一张证书**，证书里包含该站点绑定的所有域名（根域名 + www + 该站的其他子域名）。
3. **如果几个站点共用同一个根域名的不同子域名**，可以给它们各申请一张，也可以申请一张包含全部子域名的证书（勾选时都勾上）；子域名很多时才考虑通配符。
4. **先确认哪个站点对应哪个域名**：面板「网站」列表里每个站点都写着绑定域名，对不上就点进去看「域名管理」。

> [!TIP] 一个容易搞混的现象
> 访问 `https://a.你的域名` 却显示 `b.你的域名` 的证书——通常是这两个域名解析到了同一台服务器、且 Nginx 里的 `server_name` 或面板站点绑定配错了。修法是回面板核对每个站点的「域名管理」，确保一个域名只出现在一个站点里。

## 面板地址或密码找不到了怎么办

不是每个老板都记得当初面板装在哪、密码是什么。按这个顺序找：

1. **看当初的安装记录**：安装宝塔时终端会打印面板地址、用户名、密码，很多人当时截图存在手机相册或微信收藏里，先翻一遍。
2. **在服务器上查**：用云控制台的「远程连接 / Workbench / VNC」登录服务器（不需要面板密码），运行 `bt default`，会重新打印面板地址和默认账号密码。
3. **用命令重置**：`bt` 命令会进入面板管理菜单，里面可以改密码、改端口、改安全入口、重启面板。
4. **问建站公司**：如果服务器和面板都是建站公司配的，让他们给你开一个子账号，或把面板地址和只读权限交给你。**顺便要回服务器 SSH 权限**——只有面板权限、没有服务器权限，将来换服务商会被卡住。

> [!WARNING] 别在群里问「面板密码是多少」
> 面板等于服务器的总控制台。密码只走可信渠道（当面、加密沟通），不要发到微信群、邮件正文里。给外部人员的权限用完就收回。

## 名词一句话解释

看面板和本文时遇到的词，这里都有一句话解释：

| 词 | 一句话解释 |
|---|---|
| 宝塔面板（BT Panel） | 把服务器管理做成网页按钮的后台，装证书只是它的功能之一 |
| 站点 | 面板里「一个网站」的管理单元，一个站点绑定一个或多个域名 |
| Nginx / Apache | 服务器上负责「把网页发给访客」的软件；面板默认用 Nginx |
| SSL 证书（技术上叫 TLS 证书） | 网站的「电子营业执照」，浏览器靠它确认「你访问的确实是这个网站，而且连接已加密」 |
| CA（Certificate Authority） | 证书颁发机构；Let's Encrypt 是最大的免费 CA |
| DV / OV / EV | 证书按审核内容分三类：DV 只验证域名控制权（免费证书都是 DV）；OV 额外核实企业真实存在；EV 审核更严但浏览器地址栏已不再显示公司名 |
| ACME | 一套「自动申请和续期证书」的标准协议，面板、Certbot 背后都是它 |
| 文件验证 / DNS 验证 | 证明「域名归你管」的两种方式：前者在网站里放临时文件，后者在 DNS 里写一条 TXT 记录 |
| TXT 记录 | 一条写着任意文字的 DNS 记录，常用来证明身份 |
| 通配符证书 | `*.你的域名`，覆盖所有一级子域名，但不含 `你的域名` 本身 |
| 强制 HTTPS | 让 `http://` 的访问自动跳到 `https://`（301 永久跳转） |
| HSTS | 让浏览器在一段时间内「只认 https」；安全，但证书出问题时访客没有退路，建议晚点再开 |
| 混合内容 | 页面是 https，但里面的图片、脚本还是 `http://`，浏览器仍会提示不安全 |
| 证书链 | 你的证书 + 中间证书 + 根证书的信任链条；漏了中间证书，手机端会提示「证书不可信」 |
| CDN / Cloudflare | 在服务器前面加的一层加速与防护；访客看到的是它的边缘证书，源站证书在另一段生效 |
| 边缘证书 / 源证书 | 边缘证书 = 访客 ↔ CDN 那段用；源证书 = CDN ↔ 你的服务器那段用，浏览器不直接信任它 |
| 备案（ICP） | 中国大陆服务器对外提供网站服务的强制登记；没备案会被阻断，和证书无关 |
| SSL Labs | Qualys 提供的免费在线检测工具，给网站的 HTTPS 配置打分（A/A+ 为佳） |

## 失败排查表

| 症状 | 原因 | 怎么办 |
|---|---|---|
| 申请时提示验证失败 / 无法访问验证文件 | 80 端口被挡住；或站点开了 301 / CDN / 反向代理拦住了验证文件 | 云安全组 + 宝塔「安全」两处放行 80；临时关闭 301/CDN/反代后再申请 |
| 提示域名未解析 / 解析错误 | 域名没解析到这台服务器，或 DNS 尚未生效 | 用 dns.google 查 A 记录；删掉多余的 AAAA（IPv6）记录；等生效后再申请 |
| 提示申请过于频繁 | 触发了 Let's Encrypt 频率限制 | 等一小时再试；同一组域名 7 天内最多签发 5 次 |
| 申请成功但 `https://` 打不开 | 443 端口没放行 | 官方提示：检查安全组是否放行 443 端口；宝塔「安全」页面也确认一次 |
| 浏览器报 `ERR_TOO_MANY_REDIRECTS` | 站点里有旧 301 跳转，又开了强制 HTTPS | 只保留一处跳转：关掉伪静态/JS 里的跳转规则 |
| 浏览器报「名称不符」（`ERR_CERT_COMMON_NAME_INVALID`） | 证书里没有当前访问的域名（例如漏了 www） | 重新申请时把根域名和 www 都勾上；每个站点单独部署 |
| 证书过期了（`ERR_CERT_DATE_INVALID`） | 自动续签失败 | 回 SSL 页面重新申请；再查为什么没自动续（解析变了？80 关了？加了 CDN？） |
| 手机提示证书不可信、电脑正常 | 证书链不完整（手动粘贴证书时漏了中间证书） | 用面板的自动部署，或粘贴时带上完整证书链；SSL Labs 看 Chain issues |
| 网站打不开或排版错乱，地址栏仍是 https | 混合内容：页面里还有 `http://` 的图片、脚本 | 按 `F12` 打开控制台搜 `Mixed Content`，把 http 地址改成 https |
| 中国大陆服务器，访问显示备案提示 | 域名未备案，访问被云厂商阻断 | 完成备案，或把网站迁到境外服务器；证书解决不了备案问题 |

## 面板里的「证书品牌」怎么选

宝塔的申请对话框里通常能选 Let's Encrypt 或 LiteSSL，两者都是免费 DV 证书（DV = 只验证域名控制权）。选哪个？

| 品牌 | 有效期 | 说明 |
|---|---|---|
| **Let's Encrypt** | 90 天 | 非营利机构 ISRG 运营，全球最大的免费 CA，国际通用、兼容性最好【官】 |
| **LiteSSL** | 约 90 天 | 宝塔内置的另一款免费 DV 证书，官方文档称其国内访问更稳定；外贸站用 Let's Encrypt 也完全没问题 |
| 付费 DV / OV / EV 证书 | 依厂商 | 加密强度和免费证书一样；OV/EV 只是在证书里多写公司信息，浏览器地址栏看起来没区别 |

![【真实截图】Let's Encrypt 官网首页（letsencrypt.org）](/ssl/images/guide/r01_letsencrypt_home.png)

> [!WARNING] 有人拿「金融级证书」收费时怎么办
> 如果建站公司或服务商告诉你「免费证书不安全，必须买 2500 元的金融级证书」，请先停一下：**加密强度没有区别**，所有公开受信任的证书用同样的 TLS 协议和加密算法，浏览器只认「有效 / 无效」。「金融级」不是任何标准里的术语，是营销说法。只有这几种情况才值得考虑付费证书：客户、银行、招标文件或合规审计明确要求证书里有公司信息；某些老旧系统需要特定证书链兼容；需要证书机构的人工技术支持或保险条款；国内合规场景需要国密 SM2 或国产 CA 品牌。

## 常见坑（踩过一次就记住）

1. **只勾了根域名，没勾 www。** 结果访问 `https://www.你的域名` 报「名称不符」。申请时两个都勾上。
2. **申请前忘了关 CDN / 反向代理。** 官方明确提示这些会导致验证或续签失败。申请和续签前先临时关掉。
3. **只放行了安全组，忘了系统防火墙。** 宝塔「安全」页面里也要确认 80、443 放行——两道门都得开。
4. **把「面板里显示已部署」当成完事。** 强制跳转、混合内容、自动续签、到期监控这四件事一件都不能少。
5. **通配符证书勾了 `*.域名` 却没勾根域名。** 通配符不覆盖 `你的域名` 本身，两个都要勾。
6. **面板密码随手发。** 面板能改服务器一切配置；给外部人员用子账号，事后收回。
7. **证书文件手动粘贴时漏了中间证书。** 手机端会提示「证书不可信」，电脑却正常——这是证书链不完整的典型表现。
8. **换了服务器却忘了在新服务器上重新申请。** 免费证书不用「迁移」，在新服务器上重新申请即可；正确顺序是先在新服务器准备好网站、再改 DNS、DNS 生效后立刻申请，避免证书错误的窗口期。
9. **删了站点却没删证书对应的绑定。** 网站搬家或换域名后，旧站点留下的绑定可能让新站点匹配到错误的证书，表现为「名称不符」。把不再使用的站点/域名绑定清理掉。
10. **在面板里同时开了两处跳转。** 强制 HTTPS 加上伪静态里的 301，会让浏览器无限跳转。只保留一处。

> [!NOTE] 一页速查（可以截图存手机）
> 申请：网站 → 站点 → 设置 → SSL → Let's Encrypt → 申请证书（文件验证、RSA2048、根域名 + www 都勾）
> 跳转：站点设置 → SSL → 右上角「强制HTTPS」
> 验收：浏览器看「连接是安全的」；`curl -I http://你的域名` 应返回 301；SSL Labs 目标 A/A+
> 续期：到期前一个月回 SSL 页看剩余天数是否刷新；再设一个外部到期监控
> 通配符：SSL → 域名管理 → DNS接口设置 → 添加DNS接口，然后申请时选 DNS 验证
> 回滚：关掉强制 HTTPS；把旧证书粘回去或重新申请；`curl -sI http://你的域名` 确认恢复

## 出事了怎么回滚

改错了想回到动手前，宝塔里很好退：

1. **关掉强制 HTTPS**：站点设置 → SSL → 右上角开关关掉，网站立刻回到「http 可访问」的状态。
2. **换回旧证书**：如果你手动粘贴过证书文件，把原证书内容粘回去并保存；如果没有旧证书，直接重新申请一张即可。
3. **检查跳转冲突**：站点设置 → 伪静态 / 重定向，确认没有和强制 HTTPS 打架的规则。
4. **确认网站已恢复**：`curl -sI http://你的域名 | head -1` 应重新返回 `200`。

> [!NOTE] 动手前留一份「原设置」截图
> 申请证书前，把站点设置里 SSL、域名管理、伪静态这几页各截一张图存着。万一出问题，照着截图就能退回原样，比回忆「原来是怎么配的」可靠得多。

## 把这件事交给 AI 智能体

如果你更想「有人带着做」，可以把本页的「一键复制给智能体」提示词复制给常用的 AI 智能体（豆包、ChatGPT、Claude、Codex 等）。它会先问你几个问题、帮你核对域名解析和端口，再按面板菜单一步一步带你点，每一步改动前先征求你的同意，最后给你一张「部署完成清单」。

> [!WARNING] 交给智能体也要守这几条
> 1. 面板密码、DNS 接口密钥不要发到对话里；需要输入时自己在面板输入框里填。
> 2. 它说「点这个按钮」时，看清「改什么、怎么退回」再动手。
> 3. 不要因为任何人的建议去买「金融级证书」——免费 DV 证书和付费证书的加密强度完全一样。
> 4. 结束时让它告诉你回滚方法，并把总结自己存一份。

## 常见问题

### 用宝塔面板装证书要花钱吗？

不用。面板内置的 Let's Encrypt 免费签发、默认自动续签，全程不花钱。申请对话框里如果出现 LiteSSL，那也是免费 DV 证书，官方文档称其国内访问更稳定；外贸站用 Let's Encrypt 也完全没问题。免费 DV 证书和付费证书的加密强度、浏览器信任完全一样，不存在「金融级证书才安全」这回事。

### 面板显示「已部署」，为什么手机访问还是提示证书不可信？

多半是证书链不完整：只装了域名证书、漏了中间证书。电脑有时能容忍，手机浏览器更严格。用面板的自动部署一般不会有这个问题，手动粘贴证书文件时容易漏，粘贴时要带上完整证书链。另一个可能是在 Cloudflare 那里把源证书直接用在了访客端，浏览器并不信任源证书。

### 申请时提示「验证失败 / 无法访问验证文件」怎么办？

按顺序查三件事：一是 80 端口有没有通，云安全组和宝塔左侧「安全」页面的系统防火墙两道门都要放行；二是域名有没有解析到这台服务器，用 dns.google 查 A 记录并删掉多余的 AAAA 记录；三是站点有没有开着 CDN、反向代理或 301 跳转，官方明确提示这些会导致验证或续签失败，先临时关掉再申请。

### 「强制HTTPS」和伪静态里的 301 跳转能同时开吗？

不能。宝塔官方提示：开启强制 HTTPS 之前，要确保站点没有做其他 301 跳转（伪静态规则或 JS 跳转），否则会出现无限跳转，浏览器报 ERR_TOO_MANY_REDIRECTS。只保留一处跳转即可。

### 宝塔的证书会自动续签吗？我还需要做什么？

官方文档说明免费证书有效期 3 个月、默认自动续签。但你还需要做两件事：一是到期前一个月左右回到站点设置里的 SSL 页面，看剩余天数是否已经刷新（例如从剩余 30 天变回 89 天）；二是设一个外部到期监控，因为 Let's Encrypt 已于 2025-06-04 停止发送到期提醒邮件，只靠面板一层不够保险。

### 为什么通配符证书只能用 DNS 验证？

通配符证书覆盖的是 *.你的域名 这样的整个子域名层级，用文件验证没法证明你同时控制所有子域名，所以只能通过在 DNS 里写一条 TXT 记录来证明。做法是先到 DNS 服务商创建只给「DNS 解析管理」权限的 API 密钥，在宝塔的 SSL 到域名管理到 DNS接口设置里添加接口，申请时选 DNS 验证即可；密钥不要发给任何人。

## 资料来源与核实记录

| 事实 | 来源 | 核实日期 |
|---|---|---|
| 宝塔面板官方文档：网站 SSL 证书部署（申请、强制 HTTPS、DNS 接口） | https://docs.bt.cn/user-guide/site/php/site-config/ssl/ | 2026-10-10 |
| Let's Encrypt 验证方式（HTTP-01 / DNS-01） | https://letsencrypt.org/docs/challenge-types/ | 2026-10-10 |
| Let's Encrypt 频率限制（同一组域名每周 5 次签发） | https://letsencrypt.org/docs/rate-limits/ | 2026-10-10 |
| Let's Encrypt 到期提醒邮件服务已结束（2025-06-26） | https://letsencrypt.org/2025/06/26/expiration-notification-service-has-ended.html | 2026-10-10 |
| Let's Encrypt 证书有效期将缩短至 64/45 天（公告 2025-12-02） | https://letsencrypt.org/2025/12/02/from-90-to-45 | 2026-10-10 |
| CA/Browser Forum SC-081v3 证书有效期时间表（200→100→47 天） | https://cabforum.org/2025/04/11/ballot-sc081v3-introduce-schedule-of-reducing-validity-and-data-reuse-periods/ | 2026-10-10 |
| 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 |
| 阿里云帮助中心：未备案域名解析至中国内地服务器将被阻断 | https://help.aliyun.com/zh/icp-filing/basic-icp-service/support/for-the-record-domain-faq | 2026-10-10 |

## 更新记录

- 2026-10-12 · v1.0：上线：指南第 5 章改写为独立路线教程，补申请前确认清单、失败排查表、通配符 DNS 验证、常见坑与回滚方法。
