#!/usr/bin/env bash # BizCare 도메인(bizcare.exdev.co.kr) LE 인증서 발급 도우미 # 전제: DNS A/CNAME 이 서버를 가리키고, HTTP-01 용 webroot 가 열려 있어야 함. set -euo pipefail DOMAIN="${BIZCARE_DOMAIN:-bizcare.exdev.co.kr}" WEBROOT="${ACME_WEBROOT:-/var/www/certbot}" CERT_OUT="${CERT_OUT:-/Users/aidev/dev/exAIChatbot2.0/docker/nginx/certs/bizcare}" EMAIL="${ACME_EMAIL:-admin@exdev.co.kr}" echo "==> domain : $DOMAIN" echo "==> webroot: $WEBROOT" echo "==> out : $CERT_OUT" mkdir -p "$CERT_OUT" if ! command -v acme.sh >/dev/null 2>&1 && [ ! -x "$HOME/.acme.sh/acme.sh" ]; then echo "acme.sh 가 없습니다. https://github.com/acmesh-official/acme.sh 설치 후 재실행하세요." exit 1 fi ACME_BIN="${ACME_SH:-$HOME/.acme.sh/acme.sh}" [ -x "$ACME_BIN" ] || ACME_BIN="$(command -v acme.sh)" "$ACME_BIN" --issue -d "$DOMAIN" -w "$WEBROOT" --email "$EMAIL" || true # 심볼릭/복사는 환경에 맞게 조정 LIVE="$HOME/.acme.sh/${DOMAIN}_ecc" [ -d "$LIVE" ] || LIVE="$HOME/.acme.sh/${DOMAIN}" if [ ! -d "$LIVE" ]; then echo "발급 디렉터리를 찾지 못했습니다: $HOME/.acme.sh/${DOMAIN}[_ecc]" exit 1 fi cp -f "$LIVE/fullchain.cer" "$CERT_OUT/fullchain.pem" cp -f "$LIVE/${DOMAIN}.key" "$CERT_OUT/privkey.pem" 2>/dev/null \ || cp -f "$LIVE/private.key" "$CERT_OUT/privkey.pem" chmod 644 "$CERT_OUT/fullchain.pem" chmod 600 "$CERT_OUT/privkey.pem" echo "==> 인증서 저장 완료: $CERT_OUT" echo "==> Caddy reload:" echo " docker exec ex-chatbot-caddy caddy reload --config /etc/caddy/Caddyfile"