2026 맥 미니 대여 7×24 의사결정 매트릭스: certbot 자동 갱신·launchd 헬스 프로브·야간 침묵 파라미터
🔐 맥 미니 대여로 칠곱이십사 게이트웨이·리버스 프록시·업타임을 돌리는 독립 개발자는 새벽에도 certbot 갱신·launchd 헬스 프로브·UTC 침묵창이 어긋나면 티엘에스가 먼저 끊깁니다.
본문은 챌린지 모드 의사결정 매트릭스·복붙 plist·crontab·여섯 단계 런북·전원 FAQ만 담습니다. 매트릭스· 단계· 홈· launchd 대 PM2· APFS 수위 FAQ.
렌탈 맥 미니에서 티엘에스가 깨지는 세 가지
프로세스가 살아 있어도 notAfter가 지나면 모니터는 녹색일 수 있습니다.
- 챌린지 드리프트 — 팔십 포트가 막히면 HTTP-01이 실패하고 DNS-01 토큰은 셸 히스토리에만 남습니다.
- reload 범위 —
renew-hook이 nginx 대신 OpenClaw 게이트웨이까지 재시작하면 야간 배치가 끊깁니다. - 침묵 공백 — certbot 갱신 알림만 억제하고 만료 헬스 프로브는 없으면 침묵 중에 만료됩니다.
HTTP-01 / DNS-01: certbot 챌린지 어떻게 고를까
호스트네임마다 주 모드 하나만 고정하세요. 와일드카드는 DNS-01 필수입니다. 스테이징 발급 후 프로덕션으로 옮기기 전에 챌린지 로그를 한 번 보관해 두면 이후 장애 분석이 빨라집니다.
- HTTP-01 — nginx가
/.well-known/acme-challenge/를 서빙할 때. - DNS-01 — 팔십 포트 차단·와일드카드 — API 토큰은 키체인.
certbot certonly --staging --nginx -d gateway.example.dev
# 검증 후:
certbot certonly --nginx -d gateway.example.dev \
--deploy-hook /usr/local/bin/reload-proxy.sh
칠곱이십사 certbot·launchd 의사결정 매트릭스
| 제어 | 시작값 | 메모 |
|---|---|---|
| 챌린지 | HTTP-01 또는 DNS-01 | 와일드카드→DNS-01 |
| 갱신 주기 | 03:17·15:17 로컬 | 백업·배치와 분리 |
| 헬스 | 60s curl + 14일 게이트 | 7일 미만 즉시 페이징 |
| UTC 침묵 | 22:00–06:00+30분 | P1 우회 |
| 스케줄러 | launchd LaunchAgent | 실험실만 crontab |
| renew-hook | 프록시만 | 게이트웨이 재시작 금지 |
launchd·renew-hook·crontab 폴백
칠곱이십사 호스팅은 StartCalendarInterval LaunchAgent가 재부팅·로그 경로에 유리합니다. launchctl bootstrap gui/$(id -u)로 plist를 올린 뒤 launchctl print gui/$(id -u)/com.runmini.certbot-renew로 다음 실행 시각을 확인하세요. launchd 대 PM2로 Node 게이트웨이와 이중 재시작을 막으세요.
# ~/Library/LaunchAgents/com.runmini.certbot-renew.plist
ProgramArguments: certbot renew -q --deploy-hook /usr/local/bin/reload-proxy.sh
StartCalendarInterval: Hour 3,17 Minute 17
StandardOutPath: /var/log/certbot-renew.log
# reload-proxy.sh — nginx만; OpenClaw 재시작 금지
nginx -t && kill -HUP "$(cat /usr/local/var/run/nginx.pid)"
# crontab 폴백:
# 17 3,15 * * * certbot renew -q --deploy-hook /usr/local/bin/reload-proxy.sh
침묵창·헬스 프로브·알람 라우팅
예상 certbot 갱신 reload 노이즈는 UTC 침묵창에 넣고, 만료·업스트림 실패는 육십초 헬스 프로브가 잡습니다.
# tls-health.sh — 60s LaunchAgent
DAYS=$(( ( $(date -j -f "%b %d %T %Y %Z" "$(openssl … -enddate|cut -d= -f2)" +%s) - $(date +%s) ) / 86400 ))
[ "$DAYS" -lt 14 ] && curl -fsS -X POST "$ALERT_URL" -d "{\"days_left\":$DAYS}"
curl -fsS --max-time 5 https://gateway.example.dev/healthz
- 비P1 웹훅 22:00–06:00 UTC + 갱신 버퍼 삼십분.
days_left < 7즉시 페이징·십사일 이상은 warn만.
디스크·로그 수위 (APFS)
APFS 수위 FAQ와 동일 임계를 쓰세요.
- 황색 15% — certbot 일시 중지·적색 10% — 갱신 중단+페이징.
certbot-renew.lognewsyslog 128MB×칠일.
여섯 단계 롤아웃
인용 가능한 임계
- ① 갱신 03:17·15:17·헬스 60s·만료 14/7일
- ② 침묵 22–06 UTC+30분·renew-hook nginx만
- ③ APFS 15/10%·로그 128MB×7
전원 복구 FAQ
launchctl list·인증서·APFS 여유 후 알람 재개.