96dddeb20b
- fix(test): 添加 useSearchParams mock,修正联系链接断言 - style(nav): 将"联系我们"改为"联系" - chore(deploy): 更新 Nginx 配置和部署文档 - style(logo): 更新 Logo SVG 文件 - feat(scripts): 添加字体处理和站点配置脚本
56 lines
1.5 KiB
Bash
Executable File
56 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
DOMAIN=$1
|
|
|
|
if [ -z "$DOMAIN" ]; then
|
|
echo "用法: $0 <subdomain>.novalon.cn"
|
|
echo "示例: $0 product-a.novalon.cn"
|
|
exit 1
|
|
fi
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
NGINX_DIR="$(dirname "$SCRIPT_DIR")"
|
|
CERTBOT_DIR="/home/novalon/docker-app/certbot"
|
|
SSL_DIR="${NGINX_DIR}/ssl"
|
|
|
|
mkdir -p "${SSL_DIR}/${DOMAIN}"
|
|
|
|
echo "正在为 ${DOMAIN} 申请 SSL 证书..."
|
|
echo ""
|
|
|
|
docker run --rm \
|
|
-v "${CERTBOT_DIR}:/var/www/certbot" \
|
|
-v "/etc/letsencrypt:/etc/letsencrypt" \
|
|
certbot/certbot certonly \
|
|
--webroot \
|
|
--webroot-path /var/www/certbot \
|
|
-d "${DOMAIN}" \
|
|
--email admin@novalon.cn \
|
|
--agree-tos \
|
|
--no-eff-email
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo ""
|
|
echo "证书申请成功,正在复制到 Nginx SSL 目录..."
|
|
|
|
cp "/etc/letsencrypt/live/${DOMAIN}/fullchain.pem" "${SSL_DIR}/${DOMAIN}/"
|
|
cp "/etc/letsencrypt/live/${DOMAIN}/privkey.pem" "${SSL_DIR}/${DOMAIN}/"
|
|
|
|
echo ""
|
|
echo "✅ ${DOMAIN} 证书申请完成"
|
|
echo ""
|
|
echo "后续步骤:"
|
|
echo " 1. 验证配置: docker exec novalon-nginx-secure nginx -t"
|
|
echo " 2. 重载 Nginx: docker exec novalon-nginx-secure nginx -s reload"
|
|
echo " 3. 验证访问: curl -I https://${DOMAIN}"
|
|
else
|
|
echo ""
|
|
echo "❌ 证书申请失败"
|
|
echo ""
|
|
echo "请检查:"
|
|
echo " 1. DNS 解析是否正确: ${DOMAIN} -> 服务器IP"
|
|
echo " 2. Nginx 配置是否正确加载"
|
|
echo " 3. certbot 目录权限是否正确"
|
|
exit 1
|
|
fi
|