zhangrui.i
zhangrui.i
发布于 2025-11-19 / 2 阅读
0
0

crontab定时更新证书脚本

  1. 创建脚本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

  1. 配置定时任务crontab
# 编辑定时任务
crontab -e

10 3,14 * * * /home/certbot_renew_simple.sh

# 查看定时任务
crontab -l
  1. 手动更新证书
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

评论