예제 소스
바둑 on-policy 학습: 대국 로그를 KataGo 라벨로 바꾸기 · 파일 169개
idc_expand_mariago_ssl.sh
#!/usr/bin/env bash
# IDC(ethtrade)에서 실행: mariago.kr 을 Let's Encrypt 인증서·nginx에 추가
#
# scp scripts/idc_expand_mariago_ssl.sh ethtrade:~/
# ssh ethtrade
# chmod +x ~/idc_expand_mariago_ssl.sh
# sudo ./idc_expand_mariago_ssl.sh
#
# 사전 조건:
# - mariago.kr A 레코드 → IDC IP (********)
# - (선택) www.mariago.kr 도 같은 IP면 함께 추가
set -euo pipefail
CONF=/etc/nginx/sites-enabled/baduk.mariago.kr.conf
BACKUP="/etc/nginx/sites-enabled/baduk.mariago.kr.conf.bak.$(date +%Y%m%d%H%M%S)"
if [[ "$(id -u)" -ne 0 ]]; then
echo "sudo 로 실행해 주세요." >&2
exit 1
fi
if [[ ! -f "$CONF" ]]; then
echo "nginx 설정 없음: $CONF" >&2
exit 1
fi
DOMAINS=(baduk.mariago.kr go.mariago.kr mariago.kr)
if dig +short www.mariago.kr A | grep -q .; then
DOMAINS+=(www.mariago.kr)
echo "www.mariago.kr DNS 확인 → 인증서에 포함"
else
echo "www.mariago.kr DNS 없음 → mariago.kr 만 추가 (나중에 www CNAME 추가 후 재실행 가능)"
fi
SERVER_NAMES="${DOMAINS[*]}"
cp -a "$CONF" "$BACKUP"
echo "백업: $BACKUP"
# server_name 두 곳(443/80) 갱신
python3 - <<'PY' "$CONF" "$SERVER_NAMES"
import re, sys
path, names = sys.argv[1], sys.argv[2].split()
text = open(path, encoding="utf-8").read()
new_names = " ".join(names)
text = re.sub(
r"server_name\s+baduk\.mariago\.kr\s+go\.mariago\.kr\s*;",
f"server_name {new_names};",
text,
)
open(path, "w", encoding="utf-8").write(text)
PY
# HTTP → HTTPS 리다이렉트 (mariago.kr)
if ! grep -q 'if ($host = mariago.kr)' "$CONF"; then
sed -i '/if ($host = go.mariago.kr)/a\
\
if ($host = mariago.kr) {\
return 301 https://$host$request_uri;\
} # managed by Certbot' "$CONF"
fi
nginx -t
systemctl reload nginx
CERT_ARGS=()
for d in "${DOMAINS[@]}"; do
CERT_ARGS+=(-d "$d")
done
echo "인증서 확장: ${DOMAINS[*]}"
certbot certonly --nginx "${CERT_ARGS[@]}" --expand --non-interactive --agree-tos --register-unsafely-without-email || \
certbot certonly --webroot -w /var/www/html "${CERT_ARGS[@]}" --expand --non-interactive --agree-tos --register-unsafely-without-email
nginx -t
systemctl reload nginx
echo ""
echo "== 확인 =="
certbot certificates | sed -n '/Certificate Name: go.mariago.kr/,/^$/p'
echo ""
openssl s_client -connect mariago.kr:443 -servername mariago.kr </dev/null 2>/dev/null \
| openssl x509 -noout -subject -ext subjectAltName
echo ""
echo "완료. 브라우저에서 https://mariago.kr 열어 경고 없는지 확인하세요."