今天证书有到了更新的日期,在我多次修改后,证书是正常更新了,但是今天一看这个日期有点问题,下次
22号到期,续更的时间是25号,有点不太智能。于是乎就开始了改造之路。
在改造过程中查阅相关资料通过crontab + 脚本的方式来实现
1.写crontab命令
每分钟执行一次命令,命令如下
1
| * * * * * nohup /bin/bash /~/renew_cert.sh > /~/log/renew_cert.log 2>&1
|
最优解应该是每秒执行一次,但是crontab不支持秒级任务,只能暂时这样了
2.写脚本
编辑 renew_cert.sh ,文件内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #! /bin/bash -x
last_run_time=1585061207 //你任务上次执行的时间戳
current=`date "+%Y-%m-%d %H:%M:%S"`
curr_run_time=`date -d "$current" +%s` //当前时间戳
seconds=$((90*24*3600)) //时间间隔 单位秒
echo $current
//时间是否满足要求
if [[ $((curr_run_time - last_run_time)) -ge $seconds ]]
then
nohup certbot renew > /~/log/https/`date +"%Y%m%d%H%M%S"` 2>&1
echo 重新申请证书成功
nohup /usr/local/nginx/sbin/nginx -s reload > /~/log/nginx/`date +"%Y%m%d%H%M%S"` 2>&1 //nginx 重新加载配置文件
echo 服务器重新加载成功
sed -i "s/$last_run_time/$curr_run_time/" /~/renew_cert.sh //修改下上次执行的时间戳
echo 最近执行时间替换成功
fi
|
上面的脚本就能基本自动完成Let’s Encrypt证书的续期了
关于https
证书请移步给自己的站点加上https——为自己的域名加上一把绿色的小锁