45 lines
1.5 KiB
Bash
Executable File
45 lines
1.5 KiB
Bash
Executable File
#!/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"
|