摘要:2026 年 3 月 15 日起公开 TLS 证书最长有效期降到 200 天,之后还会降到 100 天、47 天;Let's Encrypt 也已停止到期提醒邮件,并计划把证书从 90 天缩短到 45 天。免费证书怎么选、Certbot 和 acme.sh 怎么装、续期怎么检查,本文一次讲清。

给网站上 HTTPS,现在基本不用花钱:Let's Encrypt 这类免费证书浏览器都信任,阿里云、腾讯云也有免费证书。真正容易出问题的不是“申请”,而是“续期”——证书过期那天,访客会看到整页的安全警告。如果你是按轻量应用服务器搭建 WordPress一步步建的站,开 HTTPS 那一步用的就是本文讲的方法。

先看 2026 年的变化:证书越来越短,必须自动化

  • 行业规则:CA/浏览器论坛(CA/Browser Forum)的 SC-081 决议规定,2026 年 3 月 15 日起签发的公开 TLS 证书最长有效期 200 天,2027 年 3 月 15 日起 100 天,2029 年 3 月 15 日起 47 天。
  • Let's Encrypt 的时间表(2025 年 12 月公告):现在默认 90 天;2026 年 5 月 13 日起可选的 tlsserver 配置改发 45 天证书;2027 年 2 月 10 日起默认配置改为 64 天;2028 年 2 月 16 日起默认 45 天。
  • 到期提醒邮件没有了:Let's Encrypt 的到期提醒邮件服务已于 2025 年 6 月 4 日停止。以前靠邮件提醒手动续期的,现在不会再收到任何通知。

Let's Encrypt 在公告里说得很直白:不建议手动续期;如果续期客户端不支持 ARI(续期信息接口),至少要按证书有效期的三分之二左右自动续期,写死“每 60 天续一次”以后就不够了。

免费证书有哪几种

来源有效期数量续期方式适合
Let's Encrypt(通过 Certbot、acme.sh 等)90 天(将逐步缩短)同一注册域名每 7 天最多 50 张ACME 客户端自动续期自己有服务器的站点
阿里云个人测试证书(免费版)90 天每个实名账号每自然年 20 张不支持续费,到期重新申请并替换官方定位为开发和测试环境
腾讯云免费证书90 天每个账号最多 50 张到期前重新申请前期测试、单域名
Cloudflare 边缘证书由 Cloudflare 自动管理—自动已接入 Cloudflare 代理的站点

几点说明:

  • 阿里云、腾讯云的免费证书都只支持单个域名,不支持通配符和 IP;腾讯云免费证书品牌为 TrustAsia。按现在 90 天的有效期,一年要手动换四次左右,更适合测试或临时用。
  • 正式站点更推荐 ACME 自动续期。阿里云和腾讯云控制台也有付费的证书托管,可以替你自动续。
  • 站点接了 Cloudflare 的话,访客看到的是 Cloudflare 的边缘证书,源站证书怎么配,参见 Cloudflare 免费 CDN 与 SSL 接入教程里的“加密模式”一节。

方法一:Certbot(Nginx 一条命令搞定)

Let's Encrypt 官方入门指南推荐大多数用户用 Certbot。它的前提条件写得很清楚:会用命令行;网站已经能通过 HTTP 访问、80 端口开放;能 SSH 登录服务器并用 sudo。

网站 HTTPS 免费证书怎么申请和自动续期:Certbot、acme.sh 与云厂商免费证书(2026)-有序
Let's Encrypt 官方中文“入门指南”页面截图:推荐大多数用户使用 ACME 客户端 Certbot(2026-09-29)

在 Certbot 官网选择你的 Web 服务器和系统,会给出对应命令。以 Nginx + Linux(snap 安装)为例:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
sudo certbot --nginx

最后一条会申请证书,并自动修改 Nginx 配置开启 HTTPS。想自己改配置,就用 sudo certbot certonly --nginx 只拿证书。

网站 HTTPS 免费证书怎么申请和自动续期:Certbot、acme.sh 与云厂商免费证书(2026)-有序
Certbot 官网的安装向导截图:选择 Nginx 和 Linux (snap) 后显示使用前提(2026-09-29)

装好后,Certbot 会自带一个定时任务(cron 或 systemd timer)自动续期。用下面的命令模拟一次续期,确认流程能跑通:

sudo certbot renew --dry-run
systemctl list-timers | grep certbot

如果之前用 apt、yum 装过旧版 Certbot,官方建议先卸载再装 snap 版,避免两个版本混用。

方法二:acme.sh(纯 Shell,不需要 root)

acme.sh 是一个纯 Shell 脚本,不依赖 Python,也不强制要求 root 权限,适合精简系统、容器,或者需要 DNS 验证、通配符证书的场景。

安装(把邮箱换成你自己的):

curl https://get.acme.sh | sh -s email=my@example.com

有一点要注意:从 v3.0(2021 年 8 月)起,acme.sh 默认的证书机构是 ZeroSSL,不是 Let's Encrypt。想用 Let's Encrypt,先执行:

acme.sh --set-default-ca --server letsencrypt

然后申请证书,并把证书安装到 Nginx 目录。--reloadcmd 一定要写,否则证书续期了,Nginx 还在用旧证书:

acme.sh --issue -d example.com -w /var/www/html
acme.sh --install-cert -d example.com \
--key-file       /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.pem \
--reloadcmd      "service nginx force-reload"

安装脚本会自动添加一个定时任务负责续期;新版 acme.sh 还支持 ARI,会根据证书机构建议的时间窗口续期。

通配符证书:只能用 DNS 验证

*.example.com 这种通配符证书,Let's Encrypt 要求用 DNS-01 验证:客户端调用你的 DNS 服务商接口,临时添加一条 TXT 记录。

  • Certbot:安装对应 DNS 服务商的插件(例如 certbot-dns-cloudflare),配置 API 凭据后申请。
  • acme.sh:acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf(dns_cf 是 Cloudflare,其他服务商换成对应名称)。

DNS 的 API 密钥权限很大,拿到它就能改你的解析。能限定权限就限定到单个域名,文件权限设成只有 root 可读。TXT 记录的作用,文末“相关阅读”里的域名解析入门有讲。

续期做完后,再做三项检查

  1. 模拟续期:Certbot 用 certbot renew --dry-run;acme.sh 可以对单个域名 acme.sh --renew -d example.com --force 实际续一次。注意别反复强制续,Let's Encrypt 对同一组域名每 7 天最多签 5 张证书。
  2. 确认 Web 服务已重载:续期成功但 Nginx 没重载,浏览器里看到的还是旧证书。
  3. 从外面看实际到期时间:在任意一台电脑上执行下面这条命令,读出线上证书的到期日。可以写进定时任务,剩余天数不足时发告警,也可以用第三方证书监控服务。
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate

申请失败的常见原因

  • 80 端口不通:云服务器的安全组、系统防火墙都要放行 80 和 443。HTTP-01 验证失败,多半是 Let's Encrypt 的验证服务器连不上你的服务器。
  • 域名没解析到这台服务器:用 ping 或 dig 确认 A 记录;如果还有 AAAA(IPv6)记录,也要指向同一台服务器且能访问。
  • 反复重试被限流:同一账号、同一域名每小时最多 5 次验证失败。排查问题时先用 Let's Encrypt 的测试环境(Certbot 加 --staging / --test-cert),通了再申请正式证书。
  • 国内服务器未备案:内地服务器上的网站,完成 ICP 备案前 80/443 端口的访问可能会被拦截,验证自然也过不了。

相关阅读


资料来源(2026-09-29 查询):Let's Encrypt 入门指南、Let's Encrypt:证书有效期缩短到 45 天、Let's Encrypt:到期提醒服务已停止、Let's Encrypt 速率限制、CA/Browser Forum Ballot SC-081v3、Certbot 安装向导、acme.sh 项目、阿里云个人测试证书说明、腾讯云免费证书常见问题。

说明:本文链接均为官网普通链接,本站与上述服务暂无推广关系。命令以 Ubuntu/Debian + Nginx 为例,其他系统以各项目官方文档为准。