接上一个文章,如果看不懂本文,请先阅读前文:
【开发日记】利用acme.sh获取免费泛域名SSL证书
1. 自动创建定时任务
通过acme.sh --install-cert命令执行了自动化部署后,acme.sh会通过之前安装的cron自动创建一个定时任务。
使用如下命令查看是否成功创建了定时任务:
crontab -l
正常结果显示应该是如下所示:
28 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
解释:
该定时任务会在每天凌晨的0时28分执行/root/.acme.sh/acme.sh --cron --home /root/.acme.sh
这个命令。
2. 验证定时执行的命令
查看/root/.acme.sh/域名_ecc
文件夹下的域名.conf
文件,文件中可以看到Le_RealKeyPath和Le_RealFullChainPath等配置项,表示自动化续期证书时要把证书部署在哪个位置。
对应的就是在执行以下命令时,对应的key
和fullchain
文件:
acme.sh --install-cert -d example.com --ecc \
--key-file /docker/nginx/work/crt/example.com.key \
--fullchain-file /docker/nginx/work/crt/fullchain.cer \
--reloadcmd "docker restart nginx"
在前文中时的证书部署命令是将key
和fullchain
相关文件都部署为pem
文件,这里是key
和cer
文件,这个无所谓,效果是一样的。
acme.sh
会记忆最后一次执行证书部署命令时的参数信息。
3. 修改定时执行的时间
免费证书是90天有效期,我们保证两个月更新一次证书即可,不需要每天一次这么频繁的判断证书是否有效。
把定时任务修改成每周二的凌晨三点检查一次即可。
① 修改定时任务:
crontab -e
② 选择编辑软件:
执行上面命令后会让你选择编辑软件,选择你常用的即可,我这里选择的是vim:
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]: 2
③ 修改定时任务为:
0 3 1 * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
vim
的基础用法,进入文件后输入i
进入编辑状态,编辑完之后按Esc
退出编辑状态,:
进入命令状态,在命令状态输入wq
保存修改。其他操作可以自行百度一下,这里不多描述了。