- 创建脚本certbot_renew_simple.sh
#!/bin/bash
# 设置环境变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 日志文件
LOG_FILE="/home/certbot_renew.log"
# 记录开始时间
echo "==========================================" >> $LOG_FILE
echo "$(date): 开始检查并更新SSL证书" >> $LOG_FILE
# 更新所有证书(Certbot会自动判断哪些需要更新)
/usr/bin/certbot renew --quiet
EXIT_CODE=$?
if [ $EXIT_CODE -eq 0 ]; then
echo "$(date): 证书检查完成,无需更新" >> $LOG_FILE
else
echo "$(date): 证书更新完成" >> $LOG_FILE
# 重启nginx使新证书生效
/bin/systemctl restart nginx
if [ $? -eq 0 ]; then
echo "$(date): Nginx重启成功" >> $LOG_FILE
else
echo "$(date): Nginx重启失败" >> $LOG_FILE
fi
fi
echo "==========================================" >> $LOG_FILE
- 配置定时任务crontab
# 编辑定时任务
crontab -e
10 3,14 * * * /home/certbot_renew_simple.sh
# 查看定时任务
crontab -l
- 手动更新证书
systemctl status nginx
sudo certbot renew --cert-name www.sysai.top --force-renewal
sudo certbot renew --cert-name wx.sysai.top --force-renewal
systemctl restart nginx
systemctl status nginx