在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为新域名创建独立证书(相当于新申请证书,操作步骤如第二大点)

 

 

 

 

posted @ 2025-04-18 16:37  FkLee  阅读(263)  评论(0)    收藏  举报