Files
keycloak-pattern/docs/evidence/d4-certificate-renewal
DongHyeonkaandClaude Opus 5 4864d837f1 docs: D-4 — the certificate is fine and the renewal itself went untested
Three SAN entries and no wildcard is the constraint that cost something real in B-7, where oauth2-proxy had to borrow Grafana's app2 hostname because a fourth name was not available. The served chain is four deep and verifies, so fullchain.pem is configured rather than the cert.pem mistake that only breaks clients without a cached intermediate.

The forced renewal and the reload behaviour could not be measured because sudo on the host asks for a password, the same silent failure first noticed in B-7. nginx reload is graceful by design, but this lab has repeatedly shown that by design is not the same as measured, so it is recorded as untested rather than assumed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 15:09:36 +09:00
..

D-4 — 인증서 갱신 증거

2026-09-04 17:2517:35 KST 해설: docs/experiment-d4-certificate-renewal.md

파일 무엇을 보여주는가
01-certificate-state.txt SAN 3개(와일드카드 아님) · 체인 4단계, Verify return code: 0 · certbot-renew.timer enabled·active, 11시간 전 실행 · 88일 남음 · sudo: a password is required 로 강제 갱신 불가

핵심 세 줄

  1. 인증서가 이름 3개만 담는다. B-7 에서 oauth2-proxy 를 올릴 호스트가 없어 Grafana 의 app2 를 빌려야 했던 실제 비용이 여기서 나왔다.
  2. 체인이 완전하다 — 단계가 4개이므로 fullchain.pem 을 쓰고 있다. 1개면 cert.pem 실수이며 캐시 없는 클라이언트에서만 깨진다.
  3. 강제 갱신은 못 했다. 호스트 sudo 가 비밀번호를 요구한다. 타이머가 active 라는 것은 "갱신이 된다"의 확인이 아니다.