惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
F
Fortinet All Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
T
The Blog of Author Tim Ferriss
D
DataBreaches.Net
量子位
博客园 - 三生石上(FineUI控件)
I
InfoQ
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
D
Docker
美团技术团队
雷峰网
雷峰网
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理

腾腾博客

CN2 GIA 主机补货监控:搬瓦工/DMIT/V.PS/HostDare 现货实时提醒工具推荐 - 腾腾博客 Vultr 和 DigitalOcean 哪个好?外贸站同价位实测对比(2026) - 腾腾博客 IP 纯净度检测工具推荐:一个页面查清 IP 是机房还是住宅(Net.Coffee 实用指南) - 腾腾博客 丽萨主机 VS ZoroCloud:CN2 GIA 住宅 IP VPS 怎么选(2026) - 腾腾博客 V.PS 怎么样?支付宝购买教程 + 阿姆斯特丹 Pro 实测(2026) - 腾腾博客 CN2 GIA 主机为什么老缺货?现货主力搬瓦工 + 平替全指南(2026) - 腾腾博客 aaPanel 安装 WordPress 教程:新手也能十分钟搭好一个网站 - 腾腾博客 Vultr 购买教程:洛杉矶高频 VPS 部署与测评支持支付宝付款 (2026) - 腾腾博客 移动端SEO优化清单:WordPress外贸站谷歌移动优先索引避坑指南 - 腾腾博客 WordPress 提示"另一更新正在进行"?3 种方法彻底解决 - 腾腾博客 WordPress SEO 完整指南:外贸站从 0 到排上 Google 首页 - 腾腾博客 LocalWP 本地建站教程:零服务器在电脑上搭建 WordPress - 腾腾博客 VPS 磁盘空间不足?30 分钟释放空间的 6 种方法 - 腾腾博客 Namecheap 域名转入 Cloudflare 完整教程:图文步骤新手跟着做不踩坑 - 腾腾博客 宝塔面板 vs aaPanel 哪个好?2026深度对比,选对少走弯路 - 腾腾博客 CN2 GIA主机商哪家强?4大顶级服务商2026深度评测 - 腾腾博客 Namesilo vs Namecheap vs Cloudflare 域名对比 2026:外贸站选哪家? - 腾腾博客 SiteGround Coderick AI深度测评 2026:免费50,000 Credits,实测3个真实项目 - 腾腾博客 SiteGround支持支付宝了!2026年国内用户购买完整教程(官方确认) - 腾腾博客 Evoxt VPS测评+购买教程 2026:洛杉矶AMD EPYC实测,$2.99/月起 - 腾腾博客 Hostinger VPS vs DigitalOcean Droplet 2026:外贸站该怎么选?深度对比 - 腾腾博客 六六云(666clouds)美西双ISP VPS真实测评:NTT原生IP,¥50/月起 - 腾腾博客 ChemiCloud怎么买最便宜?2026年省钱攻略持续更新 - 腾腾博客 外贸站为什么建议用CN2 GIA线路?普通VPS的3个致命问题 - 腾腾博客 Bluehost WordPress主机购买评测+建站完整教程 2026(图文详解) - 腾腾博客 Shopify独立站 vs WordPress独立站:成本与外贸适用性深度对比 2026 - 腾腾博客 外贸站新手最容易踩的5个主机坑(附真实场景复盘)2026年避坑指南 - 腾腾博客 DMIT vs 搬瓦工:CN2 GIA谁更稳?2026年外贸站VPS深度对比 - 腾腾博客 Hello Elementor主题完整教程:安装设置+页眉页脚+建站全流程图文指南 - 腾腾博客 Hostinger怎么买最便宜?最低价购买方法+额外折扣码教程 - 腾腾博客
宝塔面板SSL证书过期怎么办?自动续签配置教程+续签失败排查 ...
ctzpj · 2026-06-11 · via 腾腾博客

你是否也遇到过:客户发来消息说你网站打不开,打开一看,浏览器显示一个大大的红色警告:”您的连接不是私密连接”。

这多半是SSL证书过期了。

Let’s Encrypt证书有效期是90天,三个月到期一次,需要手动续签。如果没有配好自动续签,迟早会忘。忘了之后,网站HTTPS失效,浏览器直接报警,访客看到红色警告页基本立刻关掉,搜索排名也会受影响。

好消息是宝塔面板处理这件事其实不麻烦。这篇文章把三个点讲清楚:怎么第一次申请SSL、怎么配好自动续签、自动续签失败了怎么排查。

宝塔提供哪几种证书?

宝塔面板里申请SSL,目前主要有两个选项:

宝塔SSL:和宝塔合作的免费证书,一次申请有效期是1年,但不支持续签,到期了必须重新申请。操作麻烦,不推荐。

Let’s Encrypt:国际通用的免费SSL,有效期3个月,支持续签,宝塔有内置的自动续签机制。这是主流选择,本文主要讲这个。

付费证书:你也可以去第三方渠道购买付费证书,或者宝塔官网提供的付费证书。一般看你购买的期限。(非商业的个人网站用免费证书就足够了,而付费 SSL 证书(如 OV 企业型、EV 增强型)

点击查看 宝塔官网锐安信DV SSL证书

第一步:申请Let’s Encrypt证书

如果你的网站还没装SSL,先从这里开始。已经装好的跳到第二步。

登录宝塔后台 → 左侧菜单点网站 → 找到你的域名,点后面的设置 → 弹出的窗口里点SSL → 选(免费证书)Let’s Encrypt标签。

bt panel ssl lets encrypt apply

验证方式这里有两个选项,选哪个取决于你的域名解析情况:

文件验证:宝塔在网站目录里放一个验证文件,Let’s Encrypt来访问确认你拥有这个域名。要求是域名已经正确解析到服务器IP,80端口可以正常访问。这是最常用的方式,速度快,一两分钟出证书。

如果你还不会解析域名可以参考:域名解析教程

DNS验证:在域名的DNS解析里添加一条TXT记录来验证身份。如果你的服务器80端口被封了、或者域名还没解析生效,就用这个方式。缺点是需要手动操作DNS,每次续签也要手动加记录——所以除非文件验证用不了,否则不推荐DNS验证做自动续签。

勾选你的域名(www和不带www的都勾上),点申请,等一两分钟,看到”部署成功”就完成了。

申请完之后,在SSL页面把强制HTTPS打开,让所有HTTP流量自动跳转到HTTPS。

bt panel ssl force https enable

第二步:确认自动续签是否已开启

宝塔会在证书到期前30天内自动触发续签任务,可以在左侧计划任务处查看是否存在名为”续签Let’s Encrypt证书”的任务,如果有这个任务并且是启用状态,SSL就是自动续签的。

去确认一下:宝塔后台 → 左侧菜单点计划任务,在任务列表里找有没有一条叫”续签Let’s Encrypt证书”或类似名字的任务。

bt panel crontab ssl renew task

通常是每天执行一次,宝塔用这个频率来防止证书过期。任务存在且状态是启用,说明自动续签已经配好了,不需要额外操作。

如果列表里找不到这条任务,需要手动添加——点右上角添加任务

  • 任务类型:Shell脚本
  • 任务名称:续签SSL证书(随便写)
  • 执行周期:每天,时间选个凌晨低峰期,比如凌晨3点
  • 脚本内容:
/www/server/panel/pyenv/bin/python3 -u /www/server/panel/class/acme_v2.py --renew_v2=1
bt jihua

保存之后这条任务每天自动跑,到期前30天内会触发续签。

第三步:手动续签(应急用)

自动续签没生效、或者发现证书马上要到期了,手动续签是最直接的解决方式。

宝塔后台 → 网站 → 找到对应域名 → 设置 → SSL → Let’s Encrypt → 点续签按钮。

bt panel ssl manual renew button

点续签之后宝塔会重新向Let’s Encrypt申请一张新证书,成功后到期时间会往后延3个月。整个过程通常一两分钟,看到成功提示就完成了。

手动续签完之后,回计划任务检查一下自动续签任务是否还在启用状态,防止下次又忘了。

自动续签失败怎么查?几个最常见原因

自动续签这东西,配好了90%的时间没问题,但偶尔会失败。常见失败原因包括:域名未正确解析、80端口被占用、计划任务被删除或禁用、面板版本过旧。再加上一个经常被忽视的——letsencrypt.json配置文件里有残留失败记录。

逐一排查:

原因一:域名DNS解析有问题

文件验证方式要求Let’s Encrypt能从外网访问到你的服务器。如果域名解析的IP和服务器实际IP对不上、或者DNS还没生效,验证就会失败。

在服务器上跑这条命令确认域名解析是否指向本机(自行替换为你自己的域名):

dig www.ctzpj.com +short

返回的IP和服务器IP一致才行。

原因二:80端口被占用或屏蔽

文件验证走的是HTTP(80端口),如果80端口被其他进程占着,或者服务器防火墙屏蔽了80端口,Let’s Encrypt就访问不到验证文件。

检查80端口是否正常监听:

bash

netstat -tlnp | grep :80

正常情况应该看到Nginx在监听80端口。如果没有,检查Nginx是否启动,以及宝塔防火墙里80端口是否放行。

原因三:计划任务被禁用或删除

有时候装了某些插件,或者手动操作过,计划任务会被意外禁用。回宝塔后台 → 计划任务,确认续签任务状态是启用,没有被关掉。

原因四:宝塔面板版本太旧

宝塔老版本的自动续签脚本有已知的bug,比如9.0.0版本存在证书内容比对不匹配的问题,导致脚本找不到即将到期的证书从而不触发续签。

宝塔后台 → 面板设置 → 检查更新,把宝塔更新到最新版本,很多续签失败的问题会随版本更新修复。

配置Nginx让证书续签更稳定

Let’s Encrypt文件验证时,会访问 http://你的域名/.well-known/acme-challenge/ 这个路径。如果你的Nginx配置里有强制跳转HTTPS的规则,这条验证请求可能会被重定向到HTTPS,而Let’s Encrypt只接受HTTP验证,就会失败。

检查一下宝塔里这个网站的Nginx配置(网站设置 → 配置文件),确认80端口的server块里有这段例外规则,让验证路径不被重定向:

检查一下宝塔里这个网站的Nginx配置(网站设置 → 配置文件),确认80端口的server块里有这段例外规则,让验证路径不被重定向:

server {
    listen 80;
    server_name 你的域名 www.你的域名;

    # Let's Encrypt验证路径例外,不强制跳HTTPS
    location /.well-known/acme-challenge/ {
        root /www/wwwroot/你的网站根目录;
        try_files $uri =404;
    }

    # 其他请求跳转HTTPS
    location / {
        return 301 https://$host$request_uri;
    }
}
bt panel nginx config acme challenge

宝塔面板在申请证书的时候通常会自动处理这部分,但如果你之前手动改过Nginx配置,可能会把这段规则覆盖掉。遇到续签失败时检查一下这里。

配置好之后,加一个监控兜底

自动续签已经配好了,但人不能完全依赖自动化——万一计划任务哪天没跑起来、或者续签失败了没注意,最好有一个外部监控在证书快到期的时候主动提醒你。

UptimeRobot的免费版支持SSL证书到期监控,设置很简单,到期前30天会发邮件提醒,不需要付费升级。

关于UptimeRobot的设置方法,参考:UptimeRobot免费版监控教程

宝塔面板建站完整流程:宝塔面板完整使用教程

宝塔面板安全加固避免配置被篡改:宝塔面板安全加固10项配置

如果你用的是Hostinger VPS建站,可以参考:Hostinger VPS搭建宝塔+WordPress完整教程

域名指南:如何正确注册与解析域名

SSL证书续签,配一次就可以躺平,只要自动续签任务在跑、80端口没问题,三个月到期的时候宝塔会自己处理,你不需要管。麻烦的是出了问题不知道从哪查,按照上面的几个原因逐一核对,大多数情况都能找到。