58 lines
1.6 KiB
Bash
58 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
||
# 为杜康 runxian.top 申请 Let's Encrypt 并切换 HTTPS 配置
|
||
# 三端 H5 统一入口 user.runxian.top/{user,shop,partner}/
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
DOMAINS=(
|
||
user.runxian.top
|
||
shop.runxian.top
|
||
partner.runxian.top
|
||
webadmin.runxian.top
|
||
dkapi.runxian.top
|
||
)
|
||
|
||
echo "==> 检查 DNS 解析到本机..."
|
||
for d in "${DOMAINS[@]}"; do
|
||
ip="$(dig +short "$d" @223.5.5.5 | tail -1)"
|
||
if [[ -z "$ip" ]]; then
|
||
echo "ERROR: $d 无 A 记录,请先在 DNS 添加指向本机公网 IP"
|
||
exit 1
|
||
fi
|
||
echo " $d -> $ip"
|
||
done
|
||
|
||
mkdir -p /var/www/certbot /var/log/nginx/dukang
|
||
|
||
echo "==> 申请证书..."
|
||
certbot certonly --webroot -w /var/www/certbot \
|
||
--cert-name user.runxian.top \
|
||
-d user.runxian.top \
|
||
-d shop.runxian.top \
|
||
-d partner.runxian.top \
|
||
-d webadmin.runxian.top \
|
||
-d dkapi.runxian.top \
|
||
--non-interactive --agree-tos -m admin@runxian.top || {
|
||
echo "certbot 失败,请确认 DNS 已生效且 80 端口可从公网访问"
|
||
exit 1
|
||
}
|
||
|
||
echo "==> 切换 nginx HTTPS 配置..."
|
||
install -m 644 "$SCRIPT_DIR/nginx-runxian-dukang-ssl.conf" /etc/nginx/conf.d/dukang-runxian.conf
|
||
nginx -t
|
||
systemctl reload nginx
|
||
|
||
echo "==> 验证..."
|
||
for url in \
|
||
https://user.runxian.top/user/ \
|
||
https://user.runxian.top/shop/ \
|
||
https://user.runxian.top/partner/ \
|
||
https://shop.runxian.top/ \
|
||
https://webadmin.runxian.top/ \
|
||
https://dkapi.runxian.top/api/v1/health; do
|
||
code="$(curl -sf -o /dev/null -w '%{http_code}' "$url" || echo fail)"
|
||
echo " $url -> $code"
|
||
done
|
||
|
||
echo "==> runxian.top 杜康域名 HTTPS 已启用(H5 统一入口 user.runxian.top)"
|