Certbot实现自动签发证书及续签

操作系统Centos9 , Web服务器nginx

一、安装 Certbot 和 Nginx 插件

复制代码
# CentOS 9 启用 EPEL
dnf install -y epel-release

# 安装 certbot 和 nginx 插件
dnf install -y certbot python3-certbot-nginx

二、申请证书

cs 复制代码
certbot certonly --nginx \
  -d fszy.cn \
  -d yxln.cn \
  --email your-email@example.com \
  --agree-tos \
  --no-eff-email
  • 会得到一张证书,包含这 2个域名(多个域名可共用一个证书),路径类似:

/etc/letsencrypt/live/fszy.cn/fullchain.pem

/etc/letsencrypt/live/fszy.cn/privkey.pem

三、Nginx 配置示例

在每个 server 块里使用同一对证书,修改完后重启服务: nginx -t && systemctl reload nginx

复制代码
server {
    listen 443 ssl;
    server_name fszy.cn;  # 或其它域名

    ssl_certificate     /etc/letsencrypt/live/fszy.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/fszy.cn/privkey.pem;

    # 其它配置...
}

四、自动续期

  1. 测试续期命令(不真正续期)
cs 复制代码
certbot renew --dry-run
  1. 续期、续期后自动重载 Nginx服务
cpp 复制代码
#先确认服务路径
which certbot
which systemctl

#配置定时任务
crontab -e
0 3 * * * /usr/bin/certbot renew --quiet --deploy-hook "/usr/bin/systemctl reload nginx"

--quiet:这个选项让certbot以静默方式运行,不输出无关信息,只输出错误信息。

--deploy-hook "/usr/bin/systemctl reload nginx":这是一个钩子命令。当证书成功更新后,会执行deploy-hook后面指定的命令。

整个命令的作用:每天凌晨3点,自动检查证书是否需要更新(到期前30天内会自动更新),如果证书更新成功,则重新加载nginx配置,使新证书生效。

相关推荐
最强小杰6 小时前
Claude Opus 4.8 调用一直报 529 怎么办?同样请求换旧模型却正常——附 429/529 双桶退避代码
ai·github
来自于狂人9 小时前
GitHub 开源趋势日报 | 2026年10月7日用 AI Agent 逆向工程一切
人工智能·开源·github
逛逛GitHub11 小时前
盘点 20 个 9 月份 GitHub 上顶顶顶的开源项目。
github
miofly11 小时前
Google 发布 EmbeddingGemma 2:7.4 亿参数的多模态嵌入模型
开源·github
wflynn12 小时前
GitHub 今日推荐|lightcraft:纯 Rust 重写的 RAW 照片开发工具
rust·开源·github·lightroom·art·photography
wflynn13 小时前
GitHub 日榜趋势速报 | 2026-10-07
开源·github
孟陬13 小时前
#教程 dw, dm, dy, d18m 是何意?万物可 Badge | 定制漂亮精致小徽章,打造眼前一亮 README
npm·github
爱写代码的倒霉蛋13 小时前
新手如何借助agent改造github项目(保姆级教程)
github·新手友好·改造项目
u13013013 小时前
GitHub 热榜项目:日榜(2026-10-07)
驱动开发·github
高频因子挖掘机14 小时前
量化选股到底要不要每天拉全市场股票?从全市场扫描到候选池的行情数据设计
后端·github·api