요청: 게이트웨이-서브도메인-100개-한계-대안
- 날짜: 2026-07-17 22:19:23
- 작업 경로: /Users/ef
요청 본문
게이트웨이, 서브도메인 세팅하는데 100개가 차서 대안이 필요함. 현황 체크, 방향 정하기.
관련 산출
(클로드가 작업 결과를 이어 기록)
결과 (2026-07-18 완료)
"100개" 정체 = Let's Encrypt 인증서당 SAN 100개 하드리밋 (DNS 아님 — hosting.kr 와일드카드 A레코드 이미 존재). 버킷 3장(99+100+61=260/400) + 단일 cert ~28장 스프롤, 신규 서브도메인마다 100도메인 cert 재발급 구조였음.
해소: 와일드카드 인증서 전환 (사장님 확정)
*.crowny.orgDNS-01 발급 성공 (CN=.crowny.org, 만료 2026-10-16, lineage=crowny.org-wildcard)- hosting.kr
_acme-challengeTXT 수동입력(사장님) — 함정: 공개리졸버 부정캐시가 구 SOA(189) 유지 → 훅 판정을 권위 NS 4대 전수일치로 전환해 해소 - stunnel 마스터 cert = 와일드카드: 슬레이브 260→26 (apex·tiomta·aimed 2단계·leum/book만), 미커버 0
- 라이브 실측: 7도메인 HTTPS 200+검증OK, 공인경로 200, SAN에 없는 임의 신규 서브도메인 TLS 즉시 유효 (구조 증명)
- cert-manager sync: 와일드카드커버 231개 버킷제외 → 버킷 잔여 31/400, "발급 불필요 Ti". 100한도 구조 소멸, 신규 서브도메인 인증서 작업 0
변경 파일
- crowny-gateway/scripts/dns01-wait-hook.sh (+.한선 동반 5/5) — DNS-01 훅: 권위NS 판정, 갱신 시 크라우니메신저로 사장님께 TXT 요청, 3h 대기
- crowny-gateway/한선게이트웨이/stunnel_conf_gen.py (+.한선 파리티) — wild lineage, 마스터선정(발급=wild/미발급=ext 폴백 dormant 가드)
- crowny-gateway/scripts/cert-manager.sh — 와일드카드커버 버킷제외 필터, renew-wild(만료<30일 DNS-01 재발급+stunnel 재기동), auto 배선, renewal conf autorenew=False(webroot renew 오염 차단)
- conf 백업: stunnel-live.conf.bak-wildcard-*
갱신 절차 (60~90일 주기)
cert-manager auto → renew-wild → 훅이 메신저로 새 TXT 값 전송 → 사장님 hosting.kr 교체 → 3h 내 자동 완료. hosting.kr_acme-challenge TXT 레코드는 삭제하지 말 것 (값만 갱신 시 교체).잔여
- Phase2(선택):
_acme-challengeNS 위임 → 자체 한선씨 DNS 응답 시 갱신 완전자동(고정IP 확보와 연동) - 단일 cert ~28장(class/estel/staking 등)은 자연 만료로 정리 가능(와일드카드가 커버)