在linux centos7.6.6 服务器上,安装Certbot,使用nginx,自动续期配置ssl证书
一、检查Certbot版本
# 卸载旧版本(如有)
sudo yum remove certbot
# 安装EPEL仓库
sudo yum install epel-release
# 安装最新Certbot及Nginx插件
sudo yum install certbot python2-certbot-nginx (根据centos版本找对应的版本包)
1、验证插件安装情况,确保输出中包含 nginx 插件。
sudo certbot plugins

2、检查 Nginx 配置文件路径
sudo nginx -T

二、运行Certbot申请证书
sudo certbot --nginx --nginx-server-root /usr/local/nginx/conf -d example.com -d www.example.com -d sys.example.com -d ow.example.com
/usr/local/nginx/conf :--nginx-server-root 后面指nginx服务上conf目录,确保以上申请的域名都有了nginx配置。默认/etc/nginx/目录,如需修改使用此参数

在 Certbot 命令中,
-d 参数表示 “域名”(Domain),用于指定需要申请 SSL 证书的域名。使用多个 -d 参数时,可以为 多个域名或子域名 申请同一张证书。
--email 需跳过交互提示,可使用以下命令(替换实际邮箱) --agree-tos --email your_email@example.com --non-interactive --redirect


三、配置自动续订证书
1、测试证书续订流程
sudo certbot renew --dry-run,若看到 The dry run was successful,说明续订机制正常。
2、配置Cron定时任务
编辑root用户的cron任务表,sudo crontab -e ;
添加以下任务(每日凌晨2点执行续订): 0 2 * * * /usr/bin/certbot renew --quiet
3、验证Cron任务
查看Cron任务列表:sudo crontab -l
手动触发测试:sudo /usr/bin/certbot renew --force-renewal 注意:--force-renewal 会强制立即续订所有证书,仅用于测试,正式环境无需使用。
4、证书未自动续订,手动运行
sudo certbot renew --force-renewal
四、增加新域名
1、将新域名追加到现有证书中(推荐)
适用场景:新域名与原证书中的域名属于同一主域(如 a.example.com 和 b.example.com),且希望统一管理。
扩展现有证书
sudo certbot --nginx --nginx-server-root /usr/local/nginx/conf --expand -d www.example.com -d sys.example.com -d ow.example.com -d new.example.com

2、为新域名创建独立证书(相当于新申请证书,操作步骤如第二大点)

浙公网安备 33010602011771号