完成https 服务
This commit is contained in:
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
# Let's Encrypt 证书续期脚本
|
||||
# 流程:停服 → certbot renew(standalone)→ 修正证书权限 → 重启服务
|
||||
# 由 crontab 每月执行一次(证书90天过期,提前30天续期)
|
||||
|
||||
ROOT="/home/ubuntu/change_cloth_server"
|
||||
LOG="/home/ubuntu/log/renew_cert.log"
|
||||
mkdir -p "$(dirname "$LOG")"
|
||||
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] === 开始证书续期 ===" >> "$LOG"
|
||||
|
||||
# 停止服务,释放 443 端口(certbot standalone 需要 80 端口,实际上不需要停止443)
|
||||
# 但 certbot --standalone 需要 80 端口空闲即可,无需停止 443 服务
|
||||
# 保险起见仍记录当前状态
|
||||
pkill -f "${ROOT}/change_app.py" 2>/dev/null
|
||||
echo " 服务已停止" >> "$LOG"
|
||||
|
||||
sleep 2
|
||||
|
||||
# 续期(standalone 模式使用 80 端口验证)
|
||||
certbot renew --standalone --non-interactive >> "$LOG" 2>&1
|
||||
RENEW_EXIT=$?
|
||||
|
||||
if [ $RENEW_EXIT -eq 0 ]; then
|
||||
echo " 证书续期成功" >> "$LOG"
|
||||
else
|
||||
echo " 证书续期失败,退出码: $RENEW_EXIT" >> "$LOG"
|
||||
fi
|
||||
|
||||
# 修正证书文件权限(确保非 root 用户可读)
|
||||
chmod 644 /etc/letsencrypt/archive/xiangsilian.com/privkey*.pem 2>/dev/null
|
||||
chmod 755 /etc/letsencrypt/live /etc/letsencrypt/archive 2>/dev/null
|
||||
|
||||
# 重启服务
|
||||
export PATH="/home/ubuntu/.local/bin:$PATH"
|
||||
nohup python3 "${ROOT}/change_app.py" >> "/home/ubuntu/log/change_app.log" 2>&1 &
|
||||
echo " 服务已重启 (PID: $!)" >> "$LOG"
|
||||
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] === 续期流程结束 ===" >> "$LOG"
|
||||
Reference in New Issue
Block a user