Let’s Encrypt 证书有效期为 90 天。建议在第 60 天之前续签,留出安全余量。以下是通过 GetHTTPS(手动)和 Certbot(自动)续签的方法。
方法一:使用 GetHTTPS 续签(手动)
重复获取原始证书时的相同步骤:
- 访问 gethttps.com/app/setup
- 输入相同的域名
- 完成 HTTP-01 或 DNS-01 验证(与之前相同)
- 下载新的证书文件
- 替换服务器上的旧文件:
sudo cp fullchain.pem /etc/ssl/gethttps/fullchain.pem sudo cp privkey.pem /etc/ssl/gethttps/privkey.pem sudo systemctl reload nginx # or apache2/httpd
耗时: 熟练后 2-3 分钟。
适用场景: 无法安装 Certbot、管理的域名较少、或不想安装额外软件。
方法二:使用 Certbot 自动续签
如果服务器上已安装 Certbot,续签会自动进行:
# Check if auto-renewal is set up
sudo systemctl list-timers | grep certbot
# Manual dry-run to test
sudo certbot renew --dry-run
# Force renewal now
sudo certbot renew
Certbot 的 systemd 定时器(或 cron 任务)每天运行两次,会在过期前 30 天内自动续签。
适用场景: 有服务器 root 权限,希望完全自动化续签。
如何查看证书过期时间
# Check from the server
openssl x509 -noout -enddate -in /etc/ssl/gethttps/fullchain.pem
# Check remotely
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate
输出示例:notAfter=Aug 5 12:00:00 2026 GMT
设置提醒
- 第 0 天: 证书签发(有效期 90 天)
- 第 60 天: 续签(推荐 — 30 天安全余量)
- 第 90 天: 证书过期 — 网站显示安全警告
为第 60 天设置日历提醒。如果管理多个域名,使用监控服务来提前预警即将过期的证书。
分步操作:使用 GetHTTPS 续签
以下是手动续签的完整流程:
-
检查当前过期时间(可选但推荐):
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate -
输入与原证书相同的域名
-
完成验证 — 与首次申请相同:
- HTTP-01:在服务器上放置新的 token 文件
- DNS-01:用新值更新
_acme-challengeTXT 记录
-
下载新的证书文件
-
在服务器上替换:
sudo cp fullchain.pem /etc/ssl/gethttps/fullchain.pem sudo cp privkey.pem /etc/ssl/gethttps/privkey.pem -
重载 Web 服务器(是 reload 而非 restart — reload 在不断开现有连接的情况下加载新文件):
sudo systemctl reload nginx # Nginx sudo systemctl reload apache2 # Apache/Debian sudo systemctl reload httpd # Apache/CentOS -
验证新证书已生效:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates
整个过程:熟练后 2-3 分钟。
续签方式对比:手动 vs 自动
| GetHTTPS(手动) | Certbot(自动) | |
|---|---|---|
| 每次续签耗时 | 2-3 分钟 | 零(cron 任务) |
| 所需服务器权限 | 仅需替换文件的权限 | 完全 root 权限 |
| 失败检测 | 网站出问题时才发现 | Certbot 日志 + 可配置失败邮件通知 |
| 最适合 | 1-5 个域名、无 root 权限 | 生产服务器、大量域名 |
| 遗忘风险 | 中等(务必设置提醒!) | 低(自动化) |
对于有 root 权限的生产服务器,配置 Certbot 自动续签。对于没有 root 权限的环境,GetHTTPS 手动续签是唯一选择。
47 天有效期的未来
CA/Browser Forum 已投票决定缩短证书最长有效期:
| 生效日期 | 最长有效期 |
|---|---|
| 当前 | 90 天(Let’s Encrypt) |
| 2026 年 3 月 | 200 天 |
| 2027 年 3 月 | 100 天 |
| 2029 年 3 月 | 47 天 |
到 2029 年,你大约每 30-35 天就需要续签一次。这使得自动续签(Certbot)变得越来越重要。对于手动工作流(GetHTTPS),建议设置更频繁的提醒。
常见问题
证书过期前可以续签吗?
可以。Let’s Encrypt 允许随时续签。新证书以新的 90 天有效期开始。提前续签不会浪费剩余时间 — 它只是替换旧证书。
每次续签都需要重新验证吗?
是的。每次续签都需要新的域名验证。这是安全特性 — 确认你仍然控制着该域名。
续签会导致停机吗?
正确操作的话不会。上传新文件后重载(而非重启)Web 服务器。nginx -s reload 和 apachectl graceful 会将新证书应用于新连接,不会断开现有连接。
可以用 GetHTTPS 获取首张证书,然后用 Certbot 续签吗?
可以。证书文件是标准 PEM 格式。你可以用 GetHTTPS 生成第一张证书,然后安装 Certbot 进行后续自动续签。两者互不冲突。详细对比 →
证书过期了怎么办?
你的网站会显示浏览器安全警告,但修复很简单:访问 GetHTTPS,获取新证书,替换文件,重载服务器。5 分钟搞定。Let’s Encrypt 不会因为证书过期而惩罚你 — 直接申请新证书即可。
续签时需要使用同一密钥对吗?
不需要。GetHTTPS 每次都会生成新的密钥对,这实际上是更好的安全实践(密钥轮换)。服务器不在乎新证书是否使用了不同的密钥 — 只要同时替换 fullchain.pem 和 privkey.pem 即可。
如何续签通配符证书?
与首次申请相同:访问 GetHTTPS,输入 *.example.com,在 DNS 中添加新的 _acme-challenge TXT 记录,验证,下载。每次续签都需要 DNS 访问权限,因为通配符证书必须使用 DNS-01。