宝塔网站开启HTTPS与证书续期检查
本文适用于宝塔 Linux 面板管理的 Nginx 网站,域名和站点已经建立,所用产品允许建站。操作入口是网站的 SSL 设置,与面板自身的登录证书不是一回事。界面以中文面板为例,部分版本会把证书统一放进左侧“SSL”菜单管理。
申请前,先把域名和访问入口核对好
确认准备签发的每个域名都属于你,并核对其 A、AAAA 记录。保留了错误的 IPv6 记录时,部分访问和验证可能走向另一台机器。解析设置可参照DNS 解析教程。网站使用 HTTPS 还需要实际入口允许 TCP 443,云侧与系统防火墙都要检查。
如果域名前面有 CDN、负载均衡或其他反向代理,先分清客户访问的入口和宝塔所在的源站。只给源站更新证书,不能证明前面的入口也已更新。已有业务先保存当前证书文件和站点配置,私钥单独妥善保管,不放进网站目录。
进入站点SSL设置,选对验证方式
打开“网站”,点击目标站点的名称或“设置”,再进入“SSL”。先确认选中的是这次要配置的域名,不要在其他网站上操作。
没有证书时,进入免费证书或 Let’s Encrypt 对应选项,点击申请。不同面板版本可能先显示证书品牌和算法,再选择验证方式。
| 验证方式 | 适用情况与检查点 |
|---|---|
| 文件验证(HTTP-01) | 普通域名可通过公网 TCP 80 访问验证文件时使用。确认 /.well-known/acme-challenge/路径没有被登录页、错误站点或代理规则接走;不能用来申请通配符证书。 |
| DNS 验证(DNS-01) | 需要通配符证书,或希望通过 DNS 证明域名控制权时使用。按本次申请生成的值添加 TXT 记录;自动续期还取决于所用 DNS 接口和授权是否可用。 |
DNS API 凭据只授予完成验证所需的权限。手工添加 TXT 可以完成当前申请,但不能由此认定以后会自动续期。CDN 或重定向也不是必然导致验证失败,关键是验证请求最终能否到达正确位置;先调整相关路径,不要为此关闭整套防护。

宝塔官方文档中的申请窗口示例。图中默认选择 LiteSSL;申请 Let’s Encrypt 证书时,先切换对应品牌,再选择自己的网站、域名和验证方式。不同版本的选项位置可能有所调整。
签发成功后部署,再检查网站
申请成功后,将证书部署到对应站点并保存启用。已有证书则在“当前证书”中导入匹配的私钥和证书文件;Nginx 使用的证书链应包含站点证书和所需中间证书,顺序不能颠倒。私钥与证书不匹配时,不要反复重启 Nginx,先检查是否拿错了一组文件。
先直接访问 https://你的域名,确认页面能正常打开、证书覆盖当前域名且没有信任提示,再处理 HTTP 跳转。下面的 www.example.com是占位域名,替换后在安装了 curl 和 OpenSSL 的终端执行:
curl -I https://www.example.com/
openssl s_client -connect www.example.com:443 -servername www.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates
第一条用于观察 HTTPS 连接和响应,不添加 -k跳过证书检查;个别应用不支持 HEAD 请求时,还要用浏览器实际打开页面。第二条查看这个入口真正返回的证书和有效期,不能仅凭它的输出判断完整信任链一定通过。带 CDN 的域名,这里看到的通常是外层入口证书。
再检查登录、表单、图片和接口。HTTPS 正常后按需要开启“强制 HTTPS”;如果应用、CDN 或其他代理也设置了跳转,应统一规则,避免来回重定向。WordPress 的混合内容问题可参照HTTPS 与混合内容修复。
把续期验收放到实际证书上
检查面板中这张证书的续签状态和相关任务日志。文件验证需要续期时仍能访问验证路径;DNS 自动验证需要授权持续有效。通过“当前证书”手工导入的证书,也不会因为保存进面板就自动获得续期能力。
为到期时间留出处理窗口。出现续签失败时先查看具体错误,不连续重复申请。续期完成后重新运行前面的检查,确认访问入口返回的新证书有效期已经变化,同时验证网页与接口。不要另外再装一套 Certbot 去接管同一张由面板维护的证书,除非已经明确迁移管理方式。
若面板显示新证书,客户端仍收到旧证书,继续检查 CDN、其他代理节点、错误域名和未重载的入口,详细方法见证书已续期仍报错的排查。