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>
This commit is contained in:
copilot-swe-agent[bot] 2026-04-12 01:18:18 +00:00 committed by GitHub
parent 0355ddf24a
commit 741fe35e1d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 10 additions and 3 deletions

View File

@ -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证书..."