温馨提示×

nginxssl在debian如何续期

小樊
39
2026-09-14 20:03:40
栏目: 云计算

在 Debian 上,Nginx 的 SSL 证书续期方式取决于你用什么方式申请的证书。最常见的是 Let’s Encrypt(certbot)。下面分情况说明。


一、使用 certbot(Let’s Encrypt)最常见 ✅

1. 查看是否已安装 certbot

which certbot

如果没有:

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

2. 手动续期测试(不会真的替换)

sudo certbot renew --dry-run

3. 实际续期

sudo certbot renew

certbot 会:

  • 自动检查 30 天内的证书
  • 自动续期
  • 自动 reload nginx

4. 确认自动续期任务(非常重要)

Debian 通常已自动配置:

systemctl list-timers | grep certbot

或:

cat /etc/cron.d/certbot

一般会有:

0 */12 * * * root certbot renew -q

5. 续期后 Nginx 不生效?

手动重载:

sudo nginx -t
sudo systemctl reload nginx

二、如果是“自己签的证书 / 商业证书”

certbot 不适用,需要手动更换:

  1. 替换证书文件
/etc/ssl/certs/xxx.crt
/etc/ssl/private/xxx.key
  1. 确认 nginx 配置指向正确
ssl_certificate     /etc/ssl/certs/xxx.crt;
ssl_certificate_key /etc/ssl/private/xxx.key;
  1. 重载 nginx
sudo nginx -t
sudo systemctl reload nginx

三、常见问题排查

证书快过期但没自动续

sudo certbot certificates

端口 80 被占用导致失败

certbot 默认用 HTTP-01 验证,需要 80 端口可达。

使用 DNS 验证(无 80 端口)

sudo certbot certonly --manual --preferred-challenges dns

四、推荐做法(生产环境)

✅ certbot + nginx 插件
✅ 自动续期
✅ 监控证书剩余天数


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

  • Debian 版本
  • 是否用 certbot
  • 证书是怎么申请的

我可以给你精确命令

0