温馨提示×

debian nginxssl如何自动续期

小樊
55
2026-09-26 21:19:42
栏目: 云计算

在 Debian 上,如果你是用 Let’s Encrypt + Certbot 申请的 SSL 证书,证书默认就会自动续期,不需要手动配置。下面分情况说明。


一、使用 Certbot(最常见,推荐)

1. 安装 Certbot(如未安装)

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

2. 申请证书(如果还没申请)

sudo certbot --nginx -d example.com -d www.example.com

3. 自动续期原理

Certbot 会:

  • 安装一个 systemd timer(Debian 默认)
  • 每天检查证书是否将在 30 天内过期
  • 自动续期并 reload nginx

查看 timer 状态:

systemctl status certbot.timer

手动测试续期(不会真的替换证书):

sudo certbot renew --dry-run

✅ 正常情况你什么都不用做


二、确认自动续期是否生效

查看定时任务

systemctl list-timers | grep certbot

手动强制续期(测试用)

sudo certbot renew

三、Nginx 自动重载问题

Certbot 在续期成功后会自动执行:

nginx -s reload

一般无需手动配置。

如果你是手动证书(非 Certbot),需要在续期后 reload:

sudo nginx -t && sudo systemctl reload nginx

四、非 Certbot(如 acme.sh / 手动脚本)

acme.sh 示例

acme.sh --install-cert -d example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.crt \
--reloadcmd "systemctl reload nginx"

acme.sh 默认有 cron 自动续期。


五、常见问题排查

1. 证书没自动续期

sudo certbot certificates

看 Expiry Date

2. 端口 80 被防火墙挡住

Let’s Encrypt 需要 80 端口

3. DNS 没解析

证书申请/续期都依赖域名解析


六、总结(最简方案)

apt install certbot python3-certbot-nginx
certbot --nginx -d 你的域名

✅ 自动续期
✅ 自动 reload nginx

如果你愿意,可以告诉我:

  • Debian 版本
  • 是否用 Docker
  • 是否已有证书

我可以给你更精确的建议。

0 踩