Files
novalon-website/scripts/ssl-product-site.sh
T
张翔 96dddeb20b chore: 上线前测试修复与部署配置更新
- fix(test): 添加 useSearchParams mock,修正联系链接断言
- style(nav): 将"联系我们"改为"联系"
- chore(deploy): 更新 Nginx 配置和部署文档
- style(logo): 更新 Logo SVG 文件
- feat(scripts): 添加字体处理和站点配置脚本
2026-04-22 20:17:13 +08:00

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