From 741fe35e1da1354e5a3012118fd7b4b0bd086438 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 01:18:18 +0000 Subject: [PATCH] fix: address code review feedback - awk semicolon strip, SSL block injection, domain validation Agent-Logs-Url: https://github.com/qinfendebingshuo/guanghulab/sessions/897d170d-eb76-4fc4-80c7-40f351735be6 Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com> --- .github/workflows/deploy-ali-cn-landing.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-ali-cn-landing.yml b/.github/workflows/deploy-ali-cn-landing.yml index 93a65293..f2d530c8 100644 --- a/.github/workflows/deploy-ali-cn-landing.yml +++ b/.github/workflows/deploy-ali-cn-landing.yml @@ -284,11 +284,12 @@ jobs: echo "✅ 配置已部署: ${CONF_FILE}" # §4 检测已有SSL证书并注入 - BARE_DOMAIN=$(grep server_name "${CONF_FILE}" 2>/dev/null | head -1 | awk '{print $2}' || echo "") + BARE_DOMAIN=$(grep server_name "${CONF_FILE}" 2>/dev/null | head -1 | awk '{print $2}' | sed 's/;//' || echo "") if [ -n "$BARE_DOMAIN" ] && [ -d "/etc/letsencrypt/live/${BARE_DOMAIN}" ] && [ -f "/etc/letsencrypt/live/${BARE_DOMAIN}/fullchain.pem" ]; then echo "🔐 检测到SSL证书,注入HTTPS配置..." - sed -i '/listen 80;/a\\n listen 443 ssl;\n ssl_certificate /etc/letsencrypt/live/'"${BARE_DOMAIN}"'/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/'"${BARE_DOMAIN}"'/privkey.pem;' \ - "${CONF_FILE}" + # 生成SSL配置块 + SSL_BLOCK=" listen 443 ssl;\n ssl_certificate /etc/letsencrypt/live/${BARE_DOMAIN}/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/${BARE_DOMAIN}/privkey.pem;" + sed -i "/listen 80;/a\\${SSL_BLOCK}" "${CONF_FILE}" echo "✅ SSL配置已注入" else echo "ℹ️ 未检测到SSL证书 · 仅HTTP模式" @@ -620,6 +621,12 @@ jobs: systemctl start nginx fi + # 验证域名格式 + if ! echo "${BARE_DOMAIN}" | grep -qE '^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*\.[a-zA-Z]{2,}$'; then + echo "❌ 域名格式无效: ${BARE_DOMAIN}" + exit 1 + fi + # 申请证书 echo "" echo "§1 申请Let's Encrypt证书..."