diff --git a/docs/diagrams/d4-renewal-gap.svg b/docs/diagrams/d4-renewal-gap.svg new file mode 100644 index 0000000..1444444 --- /dev/null +++ b/docs/diagrams/d4-renewal-gap.svg @@ -0,0 +1,94 @@ + + + + + + + + +D-4 — 「갱신 성공」과 「새 인증서 서빙」 사이의 36분 39초 +측정: 2026-09-04 · 일련번호 5초 간격 564표본 · 새 연결 0.2초 간격 8856건 + + + +디스크 — certbot + +cert1.pem +09-03 10:47:40 · notAfter Dec 2 + +cert2.pem +09-04 17:22:13 · notAfter Dec 3 +certbot renew --force-renewal +→ 성공. live/ 링크가 2번을 가리킨다 +경로는 그대로, 내용만 바뀐다 + + + +★ 잇는 것이 없다 +1. ExecStartPost +없음 +2. renewal-hooks/deploy/ +비었음 +3. certbot nginx 플러그인 +없음 +post/ · pre/ 도 비어 있다 (total 8) +셋 다 비면 아무도 reload 를 부르지 않는다 + + + + + + +nginx — 메모리 + +기동 시 읽은 cert1 +master 585 / worker 586 +둘 다 09-03 19:00:39, 22.4시간째 +reload 없이는 디스크를 다시 안 본다. +reload 하면 마스터는 남고 +워커만 새로 뜬다 → 워커 PID 로 확인 +ssl_certificate .../fullchain.pem + + + +밖에서 본 것 — 일련번호 (5초 간격) + + + + + +08:10:51 +08:22:13 +08:58:52 +09:02 +디스크 기록 +nginx -s reload + + +0520BB…B853 (옛 인증서) — 이 구간에서 428회 관측 + +06C7CB…EA1D + + +36분 39초 +사람이 reload 했기에 36분이다. 아무도 안 했다면 다음 재시작까지 — 무기한 + + + +reload 는 무중단이었다 +새 연결 8856건 전부 200 · p95 205.7 → 204.3ms (변화 없음) + +진행 중이던 요청도 살아남았다 +전송 12초째에 reload · 845361바이트 전량 · 연결수 1 + diff --git a/docs/evidence/d4-certificate-renewal/09-serial-timeline.txt b/docs/evidence/d4-certificate-renewal/09-serial-timeline.txt new file mode 100644 index 0000000..66811a8 --- /dev/null +++ b/docs/evidence/d4-certificate-renewal/09-serial-timeline.txt @@ -0,0 +1,564 @@ +08:10:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:10:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:27 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:52 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:11:58 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:18 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:23 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:28 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:33 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:38 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:44 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:49 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:12:59 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:04 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:09 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:14 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:25 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:30 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:45 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:50 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:13:55 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:00 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:36 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:41 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:14:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:07 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:27 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:53 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:15:58 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:34 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:39 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:44 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:50 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:16:55 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:00 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:20 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:25 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:36 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:41 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:17:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:27 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:53 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:18:58 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:18 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:23 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:34 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:39 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:44 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:49 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:19:59 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:20 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:25 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:30 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:45 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:20:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:11 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:52 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:21:57 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:02 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:07 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:28 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:33 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:38 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:43 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:53 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:22:58 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:34 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:39 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:44 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:49 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:23:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:00 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:20 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:25 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:30 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:24:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:11 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:52 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:25:57 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:02 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:07 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:23 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:28 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:33 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:38 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:43 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:53 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:26:58 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:14 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:34 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:39 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:44 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:49 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:27:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:00 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:20 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:25 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:30 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:28:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:11 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:36 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:52 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:29:57 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:02 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:07 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:28 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:33 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:38 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:43 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:53 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:30:58 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:34 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:39 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:44 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:49 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:31:59 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:20 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:25 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:30 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:32:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:11 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:52 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:33:57 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:02 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:07 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:18 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:23 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:28 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:33 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:38 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:43 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:34:59 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:04 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:09 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:14 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:45 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:50 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:35:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:11 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:27 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:52 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:36:57 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:18 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:23 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:28 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:33 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:38 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:43 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:37:59 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:04 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:09 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:14 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:45 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:50 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:38:55 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:00 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:36 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:41 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:39:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:07 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:27 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:38 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:43 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:53 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:40:58 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:14 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:45 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:50 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:41:55 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:00 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:36 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:41 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:42:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:07 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:27 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:53 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:43:58 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:14 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:34 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:39 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:45 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:50 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:44:55 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:00 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:11 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:36 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:41 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:52 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:45:57 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:02 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:07 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:23 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:28 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:33 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:38 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:43 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:49 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:46:59 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:04 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:09 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:20 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:25 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:30 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:45 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:50 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:47:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:11 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:52 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:48:57 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:18 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:23 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:28 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:33 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:39 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:44 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:49 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:49:59 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:04 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:20 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:25 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:30 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:50:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:11 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:27 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:52 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:51:57 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:02 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:18 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:23 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:28 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:33 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:38 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:43 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:52:59 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:04 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:09 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:14 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:45 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:50 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:53:55 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:00 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:21 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:26 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:31 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:36 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:41 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:54:57 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:02 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:07 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:12 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:17 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:27 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:43 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:48 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:53 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:55:58 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:03 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:08 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:13 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:19 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:24 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:29 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:34 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:39 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:44 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:49 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:54 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:56:59 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:05 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:10 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:15 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:20 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:25 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:30 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:35 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:40 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:46 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:51 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:57:56 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:01 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:06 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:11 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:16 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:22 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:27 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:32 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:37 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:42 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:47 serial=0520BB6416D569E26697B1691440F523B853 notAfter=Dec 2 00:47:22 2026 GMT +08:58:52 serial=06C7CB6DF1DA8A6D7995D93C264BB9ECEA1D notAfter=Dec 3 07:21:52 2026 GMT +08:58:52 ★ 일련번호 변경 감지 — 3분 더 재고 종료 diff --git a/docs/evidence/d4-certificate-renewal/10-reload-poll-window.txt b/docs/evidence/d4-certificate-renewal/10-reload-poll-window.txt new file mode 100644 index 0000000..7446ab5 --- /dev/null +++ b/docs/evidence/d4-certificate-renewal/10-reload-poll-window.txt @@ -0,0 +1,177 @@ +08:10:51.60 200 0.104996 +08:10:51.91 200 0.070124 +08:10:52.19 200 0.131785 +... (중략) +08:58:30.03 200 0.077607 +08:58:30.32 200 0.109888 +08:58:30.64 200 0.195213 +08:58:31.06 200 0.103103 +08:58:31.38 200 0.079529 +08:58:31.67 200 0.187888 +08:58:32.07 200 0.194786 +08:58:32.48 200 0.192114 +08:58:32.89 200 0.108582 +08:58:33.22 200 0.079331 +08:58:33.51 200 0.189853 +08:58:33.92 200 0.189635 +08:58:34.33 200 0.195752 +08:58:34.74 200 0.195164 +08:58:35.15 200 0.078307 +08:58:35.45 200 0.102306 +08:58:35.76 200 0.193694 +08:58:36.18 200 0.193912 +08:58:36.58 200 0.079270 +08:58:36.88 200 0.100873 +08:58:37.20 200 0.077209 +08:58:37.49 200 0.102600 +08:58:37.81 200 0.195354 +08:58:38.22 200 0.194041 +08:58:38.63 200 0.079332 +08:58:38.93 200 0.077710 +08:58:39.22 200 0.073483 +08:58:39.51 200 0.126482 +08:58:39.86 200 0.196844 +08:58:40.27 200 0.189230 +08:58:40.68 200 0.089921 +08:58:40.98 200 0.080912 +08:58:41.28 200 0.093971 +08:58:41.60 200 0.191146 +08:58:42.00 200 0.079236 +08:58:42.30 200 0.105411 +08:58:42.62 200 0.195868 +08:58:43.03 200 0.147224 +08:58:43.40 200 0.136670 +08:58:43.75 200 0.191708 +08:58:44.16 200 0.084091 +08:58:44.46 200 0.079146 +08:58:44.75 200 0.114239 +08:58:45.08 200 0.078791 +08:58:45.38 200 0.074542 +08:58:45.67 200 0.078430 +08:58:45.97 200 0.073271 +08:58:46.26 200 0.081292 +08:58:46.55 200 0.086169 +08:58:46.86 200 0.078664 +08:58:47.16 200 0.077433 +08:58:47.45 200 0.076830 +08:58:47.74 200 0.078261 +08:58:48.04 200 0.082249 +08:58:48.34 200 0.077844 +08:58:48.64 200 0.084788 +08:58:48.94 200 0.080198 +08:58:49.24 200 0.078426 +08:58:49.53 200 0.078641 +08:58:49.82 200 0.080504 +08:58:50.12 200 0.079685 +08:58:50.42 200 0.079559 +08:58:50.71 200 0.078883 +08:58:51.01 200 0.077754 +08:58:51.30 200 0.078970 +08:58:51.60 200 0.084448 +08:58:51.90 200 0.131753 +08:58:52.25 200 0.197813 +08:58:52.66 200 0.091437 +08:58:52.97 200 0.199400 +08:58:53.39 200 0.085250 +08:58:53.69 200 0.084521 +08:58:53.99 200 0.072331 +08:58:54.28 200 0.081943 +08:58:54.58 200 0.113594 +08:58:54.92 200 0.185589 +08:58:55.32 200 0.200308 +08:58:55.74 200 0.098051 +08:58:56.05 200 0.086943 +08:58:56.36 200 0.192842 +08:58:56.77 200 0.178977 +08:58:57.17 200 0.083091 +08:58:57.47 200 0.194195 +08:58:57.88 200 0.147293 +08:58:58.24 200 0.149510 +08:58:58.61 200 0.088007 +08:58:58.91 200 0.190298 +08:58:59.32 200 0.199024 +08:58:59.73 200 0.183439 +08:59:00.13 200 0.206752 +08:59:00.55 200 0.179475 +08:59:00.95 200 0.089502 +08:59:01.25 200 0.096302 +08:59:01.57 200 0.203361 +08:59:01.99 200 0.175288 +08:59:02.38 200 0.200164 +08:59:02.80 200 0.157565 +08:59:03.17 200 0.081179 +08:59:03.47 200 0.133562 +08:59:03.82 200 0.207667 +08:59:04.24 200 0.156695 +08:59:04.61 200 0.126136 +08:59:04.95 200 0.185645 +08:59:05.36 200 0.197049 +08:59:05.77 200 0.090621 +08:59:06.08 200 0.182576 +08:59:06.48 200 0.107587 +08:59:06.80 200 0.176183 +08:59:07.19 200 0.076604 +08:59:07.48 200 0.112886 +08:59:07.81 200 0.197961 +08:59:08.23 200 0.197695 +08:59:08.64 200 0.192117 +08:59:09.05 200 0.086968 +08:59:09.36 200 0.073667 +08:59:09.64 200 0.107286 +08:59:09.97 200 0.187141 +08:59:10.37 200 0.196110 +08:59:10.78 200 0.080634 +08:59:11.08 200 0.101278 +08:59:11.40 200 0.190454 +08:59:11.81 200 0.195550 +08:59:12.22 200 0.084865 +08:59:12.52 200 0.097978 +08:59:12.84 200 0.188273 +08:59:13.24 200 0.078268 +08:59:13.54 200 0.098529 +08:59:13.85 200 0.196250 +08:59:14.26 200 0.198583 +08:59:14.67 200 0.193794 +08:59:15.08 200 0.142313 +08:59:15.44 200 0.142774 +08:59:15.80 200 0.203481 +08:59:16.22 200 0.190197 +08:59:16.62 200 0.193118 +08:59:17.03 200 0.191270 +08:59:17.44 200 0.190572 +08:59:17.85 200 0.159825 +08:59:18.23 200 0.115453 +08:59:18.56 200 0.212529 +08:59:18.99 200 0.178715 +08:59:19.38 200 0.373160 +08:59:19.98 200 0.114451 +08:59:20.31 200 0.198672 +08:59:20.72 200 0.186258 +08:59:21.12 200 0.103469 +08:59:21.44 200 0.197932 +08:59:21.86 200 0.077019 +08:59:22.15 200 0.180685 +08:59:22.55 200 0.203363 +08:59:22.97 200 0.197513 +08:59:23.38 200 0.196509 +08:59:23.80 200 0.094951 +08:59:24.11 200 0.175434 +08:59:24.50 200 0.372545 +08:59:25.10 200 0.077048 +08:59:25.39 200 0.077420 +08:59:25.69 200 0.138478 +08:59:26.04 200 0.190167 +08:59:26.45 200 0.192613 +08:59:26.86 200 0.161352 +08:59:27.24 200 0.081419 +08:59:27.54 200 0.131994 +08:59:27.88 200 0.202003 +08:59:28.30 200 0.186137 +08:59:28.71 200 0.091572 +08:59:29.02 200 0.077290 +08:59:29.31 200 0.090913 +08:59:29.62 200 0.198752 +... (중략) +09:01:10.29 200 0.105354 +09:01:10.62 200 0.173389 +09:01:11.00 200 0.191564 diff --git a/docs/evidence/d4-certificate-renewal/11-inflight-full.txt b/docs/evidence/d4-certificate-renewal/11-inflight-full.txt new file mode 100644 index 0000000..58e0bec --- /dev/null +++ b/docs/evidence/d4-certificate-renewal/11-inflight-full.txt @@ -0,0 +1,146 @@ +08:10:51 코드=200 바이트=845361 시간=42.335582 연결수=1 +08:11:33 코드=200 바이트=845361 시간=42.328216 연결수=1 +08:12:16 코드=200 바이트=845361 시간=42.332256 연결수=1 +08:12:58 코드=200 바이트=845361 시간=42.327378 연결수=1 +08:13:40 코드=200 바이트=845361 시간=41.041830 연결수=1 +08:14:22 코드=200 바이트=845361 시간=42.338482 연결수=1 +08:15:04 코드=000 바이트=0 시간=0.001148 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001140 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001124 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000055 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000080 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000077 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001167 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000048 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000079 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000096 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000039 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000083 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000075 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000041 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000061 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001141 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000078 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000053 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000079 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000083 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000079 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000099 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000083 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001164 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001106 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000074 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000087 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000079 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000072 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000085 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000085 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000048 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000046 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001147 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000044 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000053 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000076 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000043 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000091 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000074 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000049 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000051 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000087 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000091 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000079 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000095 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000055 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000076 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000077 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000088 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000085 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000092 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000080 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000085 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001157 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000048 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001097 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000060 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000080 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000087 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000048 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000081 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000084 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000087 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000079 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001153 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000053 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000088 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000052 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000085 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000084 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000080 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000079 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.001106 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000051 연결수=0 +08:15:04 코드=000 바이트=0 시간=0.000056 연결수=0 +08:15:04 코드=200 바이트=845361 시간=42.236496 연결수=1 +08:15:47 코드=200 바이트=845361 시간=42.327129 연결수=1 +08:16:29 코드=200 바이트=845361 시간=41.442808 연결수=1 +08:17:10 코드=200 바이트=845361 시간=42.332025 연결수=1 +08:17:53 코드=200 바이트=845361 시간=40.434517 연결수=1 +08:18:33 코드=200 바이트=845361 시간=41.438410 연결수=1 +08:19:15 코드=200 바이트=845361 시간=42.334617 연결수=1 +08:19:57 코드=200 바이트=845361 시간=42.333846 연결수=1 +08:20:39 코드=200 바이트=845361 시간=42.232748 연결수=1 +08:21:22 코드=200 바이트=845361 시간=42.324095 연결수=1 +08:22:04 코드=200 바이트=845361 시간=42.331593 연결수=1 +08:22:46 코드=200 바이트=845361 시간=41.626941 연결수=1 +08:23:28 코드=200 바이트=845361 시간=42.330280 연결수=1 +08:24:59 코드=200 바이트=845361 시간=42.331694 연결수=1 curl종료=0 +08:25:42 코드=200 바이트=845361 시간=42.333930 연결수=1 curl종료=0 +08:26:24 코드=200 바이트=845361 시간=41.839874 연결수=1 curl종료=0 +08:27:06 코드=200 바이트=845361 시간=41.834401 연결수=1 curl종료=0 +08:27:48 코드=200 바이트=845361 시간=41.840212 연결수=1 curl종료=0 +08:28:30 코드=200 바이트=845361 시간=41.032736 연결수=1 curl종료=0 +08:29:11 코드=200 바이트=845361 시간=41.433394 연결수=1 curl종료=0 +08:29:52 코드=200 바이트=845361 시간=42.325976 연결수=1 curl종료=0 +08:30:34 코드=200 바이트=845361 시간=42.037070 연결수=1 curl종료=0 +08:31:16 코드=200 바이트=845361 시간=42.343058 연결수=1 curl종료=0 +08:31:59 코드=200 바이트=845361 시간=41.837942 연결수=1 curl종료=0 +08:32:41 코드=200 바이트=845361 시간=42.318577 연결수=1 curl종료=0 +08:33:23 코드=200 바이트=845361 시간=42.336079 연결수=1 curl종료=0 +08:34:05 코드=200 바이트=845361 시간=42.328392 연결수=1 curl종료=0 +08:34:48 코드=200 바이트=845361 시간=41.839243 연결수=1 curl종료=0 +08:35:30 코드=200 바이트=845361 시간=42.339658 연결수=1 curl종료=0 +08:36:12 코드=200 바이트=845361 시간=42.330835 연결수=1 curl종료=0 +08:36:54 코드=200 바이트=845361 시간=41.844755 연결수=1 curl종료=0 +08:37:36 코드=200 바이트=845361 시간=41.442783 연결수=1 curl종료=0 +08:38:18 코드=200 바이트=845361 시간=42.334462 연결수=1 curl종료=0 +08:39:00 코드=200 바이트=845361 시간=42.331275 연결수=1 curl종료=0 +08:39:42 코드=200 바이트=845361 시간=41.243768 연결수=1 curl종료=0 +08:40:23 코드=200 바이트=845361 시간=41.837874 연결수=1 curl종료=0 +08:41:05 코드=200 바이트=845361 시간=42.336582 연결수=1 curl종료=0 +08:41:48 코드=200 바이트=845361 시간=42.327934 연결수=1 curl종료=0 +08:42:30 코드=200 바이트=845361 시간=42.333559 연결수=1 curl종료=0 +08:43:12 코드=200 바이트=845361 시간=41.841294 연결수=1 curl종료=0 +08:43:54 코드=200 바이트=845361 시간=42.329699 연결수=1 curl종료=0 +08:44:37 코드=200 바이트=845361 시간=41.845127 연결수=1 curl종료=0 +08:45:18 코드=200 바이트=845361 시간=42.040360 연결수=1 curl종료=0 +08:46:00 코드=200 바이트=845361 시간=41.845192 연결수=1 curl종료=0 +08:46:42 코드=200 바이트=845361 시간=42.327749 연결수=1 curl종료=0 +08:47:25 코드=200 바이트=845361 시간=41.837216 연결수=1 curl종료=0 +08:48:06 코드=200 바이트=845361 시간=42.329675 연결수=1 curl종료=0 +08:48:49 코드=200 바이트=845361 시간=42.036368 연결수=1 curl종료=0 +08:49:31 코드=200 바이트=845361 시간=42.341275 연결수=1 curl종료=0 +08:50:13 코드=200 바이트=845361 시간=42.332664 연결수=1 curl종료=0 +08:50:56 코드=200 바이트=845361 시간=42.334345 연결수=1 curl종료=0 +08:51:38 코드=200 바이트=845361 시간=41.837146 연결수=1 curl종료=0 +08:52:20 코드=200 바이트=845361 시간=42.328092 연결수=1 curl종료=0 +08:53:02 코드=200 바이트=845361 시간=42.344341 연결수=1 curl종료=0 +08:53:44 코드=200 바이트=845361 시간=42.332296 연결수=1 curl종료=0 +08:54:27 코드=200 바이트=845361 시간=41.839230 연결수=1 curl종료=0 +08:55:09 코드=200 바이트=845361 시간=42.336469 연결수=1 curl종료=0 +08:55:51 코드=200 바이트=845361 시간=42.336864 연결수=1 curl종료=0 +08:56:33 코드=200 바이트=845361 시간=42.043518 연결수=1 curl종료=0 +08:57:15 코드=200 바이트=845361 시간=42.340137 연결수=1 curl종료=0 +08:57:58 코드=200 바이트=845361 시간=42.335696 연결수=1 curl종료=0 +08:58:40 코드=200 바이트=845361 시간=40.840349 연결수=1 curl종료=0 +08:59:21 코드=200 바이트=845361 시간=42.340130 연결수=1 curl종료=0 +09:00:03 코드=200 바이트=845361 시간=41.841100 연결수=1 curl종료=0 diff --git a/docs/evidence/d4-certificate-renewal/12-certbot-state.txt b/docs/evidence/d4-certificate-renewal/12-certbot-state.txt new file mode 100644 index 0000000..ccfeb52 --- /dev/null +++ b/docs/evidence/d4-certificate-renewal/12-certbot-state.txt @@ -0,0 +1,41 @@ +Saving debug log to /var/log/letsencrypt/letsencrypt.log + +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Found the following certs: + Certificate Name: auth.hyeonworks.com + Serial Number: 6c7cb6df1da8a6d7995d93c264bb9ecea1d + Key Type: ECDSA + Identifiers: auth.hyeonworks.com app1.hyeonworks.com app2.hyeonworks.com + Expiry Date: 2026-12-03 07:21:52+00:00 (VALID: 89 days) + Certificate Path: /etc/letsencrypt/live/auth.hyeonworks.com/fullchain.pem + Private Key Path: /etc/letsencrypt/live/auth.hyeonworks.com/privkey.pem +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +=== renewal-hooks === +/etc/letsencrypt/archive/auth.hyeonworks.com/: +total 48 +drwxr-xr-x 2 root root 4096 2026-09-04 17:22:13.508658811 +0900 . +drwx------ 3 root root 4096 2026-09-03 10:47:40.915270972 +0900 .. +-rw-r--r-- 1 root root 1359 2026-09-03 10:47:40.915923507 +0900 cert1.pem +-rw-r--r-- 1 root root 1359 2026-09-04 17:22:13.508494637 +0900 cert2.pem +-rw-r--r-- 1 root root 3523 2026-09-03 10:47:40.916215769 +0900 chain1.pem +-rw-r--r-- 1 root root 3523 2026-09-04 17:22:13.508658811 +0900 chain2.pem +-rw-r--r-- 1 root root 4882 2026-09-03 10:47:40.916339551 +0900 fullchain1.pem +-rw-r--r-- 1 root root 4882 2026-09-04 17:22:13.508821612 +0900 fullchain2.pem +-rw------- 1 root root 241 2026-09-03 10:47:40.916079294 +0900 privkey1.pem +-rw------- 1 root root 241 2026-09-04 17:22:13.507717972 +0900 privkey2.pem + +/etc/letsencrypt/renewal-hooks/deploy/: +total 8 +drwxr-xr-x 2 root root 4096 2026-09-03 10:46:54.658474560 +0900 . +drwxr-xr-x 5 root root 4096 2026-09-03 10:46:54.658520760 +0900 .. + +/etc/letsencrypt/renewal-hooks/post/: +total 8 +drwxr-xr-x 2 root root 4096 2026-09-03 10:46:54.658505772 +0900 . +drwxr-xr-x 5 root root 4096 2026-09-03 10:46:54.658520760 +0900 .. + +/etc/letsencrypt/renewal-hooks/pre/: +total 8 +drwxr-xr-x 2 root root 4096 2026-09-03 10:46:54.658474560 +0900 . +drwxr-xr-x 5 root root 4096 2026-09-03 10:46:54.658520760 +0900 .. diff --git a/docs/evidence/d4-certificate-renewal/13-verdict.txt b/docs/evidence/d4-certificate-renewal/13-verdict.txt new file mode 100644 index 0000000..11ec966 --- /dev/null +++ b/docs/evidence/d4-certificate-renewal/13-verdict.txt @@ -0,0 +1,99 @@ +D-4 판정 — 갱신은 성공했고, 36분 39초 동안 반영되지 않았다 +============================================================= +수집: 2026-09-04 · 감시 08:10:51 ~ 09:02 UTC (KST-9) + +════ 답 1 — "갱신 실패"가 아니라 "갱신됐는데 안 집었다" ════ + +07-renewal-hook-missing.txt 에서 두 갈래로 남겼던 것이 갈렸다. + (a) 강제 갱신이 실패했다 + (b) 성공했는데 훅이 없어 reload 가 안 됐다 + → ★ (b) 였다. + +디스크 (12-certbot-state.txt) + /etc/letsencrypt/archive/auth.hyeonworks.com/ + cert1.pem 2026-09-03 10:47:40 KST ← 처음 발급 + cert2.pem 2026-09-04 17:22:13 KST ← ★ 강제 갱신, 새로 써졌다 + fullchain2.pem 2026-09-04 17:22:13 KST + privkey2.pem 2026-09-04 17:22:13 KST + + Certificate Name: auth.hyeonworks.com + Serial Number: 6c7cb6df1da8a6d7995d93c264bb9ecea1d + Expiry Date: 2026-12-03 07:21:52+00:00 (VALID: 89 days) + +밖에서 본 것 (09-serial-timeline.txt, 5초 간격 564표본) + 08:10:51 ~ 08:58:47 serial=0520BB...B853 notAfter=Dec 2 ← 옛 것 + 08:58:52 serial=06C7CB...EA1D notAfter=Dec 3 ← 바뀐 순간 + + 08:22:13 ~ 08:58:52 구간에서 옛 인증서로 관측된 횟수: 428회 + +시간 계산 + 새 인증서 디스크 기록 : 08:22:13 UTC (= 17:22:13 KST, archive mtime) + 실제 서빙 시작 : 08:58:52 UTC (= 17:58:52 KST, nginx -s reload) + ──────────────────────────────────────────── + 공백 : 2199초 = 36분 39초 + +그리고 이 36분은 **우연히 짧았을 뿐이다.** reload 를 시킨 것은 사람이지 +자동화가 아니다. 아무도 안 했다면 다음 nginx 재시작까지 — 즉 무기한 — +옛 인증서를 계속 서빙했을 것이다. + +왜 아무도 reload 하지 않았나 — 원인 세 가지가 겹쳤다 + 1. certbot-renew.service 에 ExecStartPost 가 없다 (07 참조) + 2. /etc/letsencrypt/renewal-hooks/{deploy,post,pre}/ 가 전부 비어 있다 + deploy/ total 8 (. 과 .. 뿐) + post/ total 8 + pre/ total 8 + 3. certbot 에 nginx 플러그인이 없다 — 그래서 certbot 이 스스로 못 고친다 + Discovered plugins: dns-cloudflare, manual, null, standalone, webroot + (certbot 5.7.0) + + ★ 세 경로 전부가 비어 있다. 하나라도 있었으면 자동으로 반영됐다. + +왜 이게 88일 동안 안 보이나 + 타이머는 정상이고 오늘도 두 번 status=0/SUCCESS 로 끝났다. + 만료 30일 전(= 약 58일 뒤)까지는 certbot 이 갱신 자체를 하지 않으므로 + "반영되지 않는다"는 결함이 발현할 기회가 없다. 발현하는 날 증상은 + **인증서 만료** 이고, 그때 로그는 여전히 SUCCESS 라고 적혀 있을 것이다. + +════ 답 2 — reload 는 무중단이다 (측정됨) ════ + +계획서의 질문: "nginx reload 중 진행 중이던 요청은 어떻게 되는가" + +[새 연결] 0.2초 폴링, 08:10:51 ~ 09:02 + 전체 표본 8856건 / 비200 **0건** + + 응답시간 n 중앙 p95 최대 + ───────────────────────────────────────────────────────── + 장기 평시 08:20~08:50 5398 98.0ms 205.7ms 1942.9ms + reload 직전 2분56초 489 116.0ms 200.8ms 387.7ms + reload 직후 2분08초 342 132.5ms 204.3ms 475.0ms + + p95 가 205.7 → 204.3 으로 사실상 동일하고, 최대값은 오히려 낮다. + 10초 구간 중앙값은 reload 전후 모두 80~190ms 사이를 오간다(WiFi 잡음). + → **reload 로 인한 지연 증가는 관측되지 않았다.** + +[진행 중이던 요청] 845KB 를 20k/s 로 받아 42초간 살려 둔 요청 + 08:58:40 시작 · 소요 40.84초 → 08:59:21 종료 + reload 는 08:58:52, 즉 **요청 시작 12초 뒤 전송 한가운데**였다 + + 코드=200 바이트=845361(전량) 연결수=1 curl종료=0 + + · 바이트가 전량이다 → 잘리지 않았다 + · 연결수가 1이다 → 중간에 끊겨 재연결한 것이 아니다 + · 옛 인증서로 시작한 연결이 새 워커 전환을 관통해 끝까지 갔다 + + in-flight 전체 50건 중 종료코드≠0 은 0건. + (앞서 76건 실패는 로컬 아티팩트였다 — 08-inflight-artifact.txt) + +════ 세 줄 요약 ════ + +1. **"갱신 성공"과 "새 인증서 서빙"은 다른 사건이다.** 36분 39초 동안 + 디스크에는 새 인증서가, 네트워크에는 옛 인증서가 있었다. 428번 관측했다. + +2. **reload 는 정말 무중단이었다.** 8856건 전부 200, p95 변화 없음, + 전송 한가운데였던 42초짜리 요청이 845361바이트를 온전히 받았다. + D-4 문서가 "확인하지 않았으므로 그렇게 쓰면 안 된다"고 유보했던 명제가 + 이제 측정으로 뒷받침된다. + +3. **위험한 쪽은 reload 가 아니라 reload 를 부르는 사람이 없다는 것이다.** + 훅 디렉터리 3개가 전부 비었고, 유닛에 ExecStartPost 가 없고, + nginx 플러그인도 없다. 그리고 그 상태로 타이머는 SUCCESS 를 찍는다. diff --git a/docs/evidence/d4-certificate-renewal/README.md b/docs/evidence/d4-certificate-renewal/README.md index 7757ac2..f882237 100644 --- a/docs/evidence/d4-certificate-renewal/README.md +++ b/docs/evidence/d4-certificate-renewal/README.md @@ -1,6 +1,6 @@ # D-4 — 인증서 갱신 증거 -2026-09-04 17:25–17:35 KST +2026-09-04 17:25 – 18:02 KST 해설: [`docs/experiment-d4-certificate-renewal.md`](../../experiment-d4-certificate-renewal.md) | 파일 | 무엇을 보여주는가 | @@ -9,10 +9,20 @@ | `05-control-no-injection.txt` | **대조군 1 — 잡음 바닥.** 0.2초 × 900회 / 180초 동안 **900전부 200, 오류 0**. 중앙 98ms · p95 195ms. **TLS 핸드셰이크 900/900** = 매 요청이 새 연결이다 | | `06-inflight-control.txt` | **대조군 2 — '진행 중이던 요청' 측정 장치.** 845KB 번들을 `--limit-rate 20k` 로 받아 요청을 **42초간 살려 둔다.** 무주입 시 코드 200 · 845361바이트 · 연결수 1 | -## 핵심 세 줄 +| `05-control-no-injection.txt` | **대조군 1 — 잡음 바닥.** 0.2초 × 900회 / 180초 동안 **900 전부 200, 오류 0**. 중앙 98ms · p95 195ms. **TLS 핸드셰이크 900/900** = 매 요청이 새 연결 | +| `06-inflight-control.txt` | **대조군 2 — '진행 중이던 요청' 장치.** 845KB 를 `--limit-rate 20k` 로 받아 요청을 **42초간 살려 둔다.** 무주입 시 200 · 845361바이트 · 연결수 1 | +| `07-renewal-hook-missing.txt` | **nginx 는 reload 된 적이 없다** — 마스터 585·워커 586 이 같은 시각 기동, 22.4시간째. 유닛은 `ExecStart=certbot -q renew` 가 전부. crt.sh 는 SCT 가 박힌 인증서를 0건으로 답한다 | +| `08-inflight-artifact.txt` | **76건 실패는 서버 탓이 아니다** — 같은 순간 폴링 49건 전부 200, `연결수=0`, 50µs, 재현 0/100. 대조군이 오보를 막았다 | +| `09-serial-timeline.txt` | **일련번호 564표본.** `08:10:51 ~ 08:58:47` 옛 것 → **`08:58:52` 새 것** | +| `10-reload-poll-window.txt` | reload 전후 60초 새 연결 원문 — **비200 0건**, 최대 373ms | +| `11-inflight-full.txt` | in-flight 전체 50건. **08:58:40 시작 요청이 08:58:52 reload 를 관통**해 845361바이트 전량 수신 | +| `12-certbot-state.txt` | `cert2.pem` **09-04 17:22:13 기록됨** · `renewal-hooks/{deploy,post,pre}/` **셋 다 비었음** · 플러그인 목록에 nginx 없음 | +| `13-verdict.txt` | **판정 전문** — 36분 39초 공백(428회 관측) + reload 무중단(8856건 0실패) | -1. **인증서가 이름 3개만 담는다.** B-7 에서 oauth2-proxy 를 올릴 호스트가 없어 Grafana 의 `app2` 를 빌려야 했던 실제 비용이 여기서 나왔다. -2. **체인이 완전하다** — 단계가 4개이므로 `fullchain.pem` 을 쓰고 있다. 1개면 `cert.pem` 실수이며 캐시 없는 클라이언트에서만 깨진다. -3. **강제 갱신은 아직 못 했다.** 호스트 sudo 가 비밀번호를 요구한다. 타이머가 active 라는 것은 "갱신이 된다"의 확인이 아니다. -4. **주입 전에 대조군을 먼저 잡았다.** 평시 실패가 0/900 이므로, 갱신 중 비200 이 한 번이라도 나오면 갱신 탓으로 귀속할 수 있다. 대조군 없이 주입부터 했다면 그 한 번을 해석할 수 없었다 — A-6 에서 −41% 를 "영향 없음"이라 적었던 실수가 바로 그것이다. -5. **폴링만으로는 D-4 의 질문에 답할 수 없다.** 핸드셰이크 900/900 이 말해주듯 매 요청이 새 연결이라, 재는 것은 "새 연결을 받아주는가" 뿐이다. 계획서가 물은 "진행 중이던 요청"은 42초짜리 in-flight 장치로 따로 잡는다. +## 핵심 다섯 줄 + +1. **「갱신 성공」과 「새 인증서 서빙」은 다른 사건이다.** 새 인증서가 디스크에 있는 채로 **36분 39초** 동안 옛 인증서를 서빙했고, 그 구간에서 **428번** 관측했다. +2. **그 36분은 우연히 짧았다.** reload 를 시킨 것은 사람이다. 아무도 안 했다면 다음 nginx 재시작까지 무기한이었다. +3. **원인이 셋 겹쳤다.** 유닛에 `ExecStartPost` 없음 · 훅 디렉터리 3개 전부 비었음 · certbot 에 nginx 플러그인 없음. 하나라도 있었으면 자동 반영됐다. +4. **reload 자체는 무중단이었다.** 새 연결 8856건 전부 200, p95 205.7 → 204.3ms, 그리고 **전송 12초째에 reload 를 맞은 42초 요청이 845361바이트를 온전히** 받았다(연결수 1). +5. **이 결함은 88일 동안 안 보인다.** 타이머는 오늘도 두 번 `SUCCESS` 로 끝났다. 만료 30일 전까지는 갱신 자체를 하지 않으므로 발현할 기회가 없고, 발현하는 날의 증상은 **인증서 만료**다 — 그날에도 로그는 `SUCCESS` 라고 적혀 있다. diff --git a/docs/experiment-d4-certificate-renewal.md b/docs/experiment-d4-certificate-renewal.md index 3ec81ce..528f46e 100644 --- a/docs/experiment-d4-certificate-renewal.md +++ b/docs/experiment-d4-certificate-renewal.md @@ -10,6 +10,10 @@ ![D-4 구조 — 체인과 SAN 제약](diagrams/d4-cert-chain.svg) +**핵심 발견** — 갱신은 성공했는데 36분 39초 동안 반영되지 않았다. + +![D-4 — 갱신과 서빙 사이의 공백](diagrams/d4-renewal-gap.svg) + > 다이어그램 규약은 [`diagrams/_style.md`](diagrams/_style.md). > 실험대 전체 구조는 [`diagrams/lab-topology.svg`](diagrams/lab-topology.svg). @@ -21,12 +25,19 @@ |---|---| | 인증서 구성 | **SAN 3개** (`auth`/`app1`/`app2`), 와일드카드 아님 | | 체인 완결성 | **정상.** `Verify return code: 0 (ok)`, 4단계 | -| 갱신 자동화 | **동작 중.** `certbot-renew.timer` enabled·active, 11시간 전 실행됨 | -| 남은 기간 | **88일** (갱신까지 약 58일) | -| **강제 갱신 실측** | **★ 못 했다.** `sudo: a password is required` | +| 갱신 자동화 | 타이머는 **동작한다.** 오늘 두 번 `status=0/SUCCESS` | +| **★ 갱신 반영** | **안 된다.** 새 인증서가 디스크에 있는 채로 **36분 39초** 동안 옛 인증서를 서빙했다 | +| **★ reload 무중단** | **무중단이다.** 8856건 전부 200 · 전송 한가운데였던 42초 요청이 845361바이트 전량 수신 | -**측정한 것과 못 한 것을 나눠 적는다.** 못 한 것을 안 한 것처럼 쓰면 -이 기록 전체의 신뢰가 깎인다. +### 한 문장으로 + +> **"갱신 성공"과 "새 인증서 서빙"은 다른 사건이다.** +> 그리고 이 실험대에는 앞의 사건을 뒤의 사건으로 잇는 것이 **아무것도 없다.** + +이게 왜 무서운가 — 이 결함은 **88일 동안 보이지 않는다.** 타이머는 정상이고 +매번 `SUCCESS` 로 끝난다. 만료 30일 전까지는 certbot 이 갱신 자체를 하지 않아 +"반영이 안 된다"는 사실이 발현할 기회가 없기 때문이다. 발현하는 날의 증상은 +**인증서 만료**이고, 그날에도 로그에는 `SUCCESS` 라고 적혀 있을 것이다. --- @@ -112,115 +123,164 @@ certbot 은 **30일 남았을 때** 갱신한다. 지금 실행돼도 아무것 --- -## 4. ★ 못 한 것 — 강제 갱신과 무중단 확인 +## 4. ★ 강제 갱신 — 두 개의 답 -계획서의 D-4 는 이렇게 적혀 있었다. +### 4-1. 먼저 대조군을 잡았다 + +주입 전에 평시를 재둔다. **이걸 건너뛰면 주입 결과를 해석할 수 없다** — +A-6 에서 −41% 대조군을 "영향 없음"이라 적었던 것도, A-8 에서 표본 9개로 +무중단을 주장한 것도 같은 종류의 실수였다. + +| 대조군 | 결과 | +|---|---| +| 새 연결 (0.2초 × 900회 / 180초) | **900 전부 200, 오류 0** · 중앙 98ms · p95 195ms | +| 진행 중 요청 (845KB @ 20k/s) | 200 · 845361바이트 · 연결수 1 · **42.3초 완주** | + +두 번째 장치가 왜 따로 필요했는가 — 첫 번째 폴링은 **TLS 핸드셰이크가 +900/900** 이다. 매 요청이 새 연결이라는 뜻이고, 그래서 "새 연결을 받아주는가"만 +잰다. 계획서가 물은 것은 **"진행 중이던 요청은 어떻게 되는가"** 이므로, +reload 순간에 실제로 전송 중인 요청이 있어야 한다. 845KB 짜리 관리 콘솔 +번들을 일부러 느리게 받아 요청 하나를 42초 동안 살려 두었다. + +### 4-2. 갱신은 성공했는데, 인증서가 바뀌지 않았다 + +`sudo certbot renew --force-renewal` 을 실행한 뒤에도 밖에서 본 인증서가 +그대로였다. 처음에는 갱신이 실패한 줄 알았다. 아니었다. + +``` +디스크 (/etc/letsencrypt/archive/auth.hyeonworks.com/) + cert1.pem 2026-09-03 10:47:40 KST 처음 발급 + cert2.pem 2026-09-04 17:22:13 KST ← 강제 갱신, 새로 써졌다 + +네트워크 (5초 간격 564표본) + 08:10:51 ~ 08:58:47 serial=0520BB…B853 notAfter=Dec 2 ← 옛 것 + 08:58:52 serial=06C7CB…EA1D notAfter=Dec 3 ← 바뀐 순간 +``` + +| | 시각 (UTC) | +|---|---| +| 새 인증서 디스크 기록 | 08:22:13 | +| 실제 서빙 시작 (`nginx -s reload`) | 08:58:52 | +| **공백** | **2199초 = 36분 39초** | + +그 사이 **428번** 옛 인증서로 관측됐다. 그리고 이 36분은 **우연히 짧았을 +뿐이다** — reload 를 시킨 것은 사람이지 자동화가 아니다. 아무도 안 했다면 +다음 nginx 재시작까지, 즉 무기한 옛 인증서를 서빙했을 것이다. + +#### 개념 — 왜 파일이 바뀌어도 nginx 는 모르는가 + +**무엇인가.** nginx 는 `ssl_certificate` 가 가리키는 파일을 **기동 시점에 +한 번 읽어 메모리에 들고 있다.** 요청마다 디스크를 다시 보지 않는다. + +**왜 여기 나오나.** certbot 은 `live/` 심볼릭 링크가 새 `archive/` 파일을 +가리키도록 바꾼다. **경로는 그대로인데 내용만 바뀐다.** 그래서 nginx 설정을 +고칠 필요가 없고, 바로 그 때문에 "설정이 그대로니 괜찮다"고 착각하기 쉽다. +필요한 것은 설정 변경이 아니라 **reload** 다. + +**없거나 틀리면.** 인증서가 만료되어 브라우저가 `NET::ERR_CERT_DATE_INVALID` +를 띄운다. 그 시점에 디스크에는 멀쩡한 인증서가 들어 있고 갱신 로그도 +`SUCCESS` 다 — 그래서 원인을 찾는 데 오래 걸린다. + +**확인.** nginx 는 reload 하면 마스터를 유지한 채 워커만 새로 띄운다. +```bash +ps -eo pid,ppid,etimes,lstart,args | grep nginx +# 585 1 80529 Thu Sep 3 19:00:39 nginx: master process +# 586 585 80529 Thu Sep 3 19:00:39 nginx: worker process +# ↑ 워커가 마스터 기동 직후의 첫 fork(585→586) 그대로 22.4시간째 +# = reload 가 한 번도 없었다 +``` + +#### 원인은 하나가 아니라 셋이 겹쳤다 + +| # | 경로 | 상태 | +|---|---|---| +| 1 | `certbot-renew.service` 의 `ExecStartPost` | **없다** — `ExecStart=/usr/bin/certbot -q renew` 가 전부 | +| 2 | `/etc/letsencrypt/renewal-hooks/{deploy,post,pre}/` | **셋 다 비어 있다** (`total 8`, `.` 과 `..` 뿐) | +| 3 | certbot 의 nginx 플러그인 | **없다** — `dns-cloudflare, manual, null, standalone, webroot` | + +**세 경로 전부가 비어 있다.** 하나라도 있었으면 자동으로 반영됐다. +certbot 5.7.0 에서 확인한 값이다. + +#### 고치는 법 ```bash -sudo certbot renew --force-renewal +# 가장 단순한 방법 — deploy 훅 하나 +sudo tee /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh <<'EOS' +#!/bin/sh +nginx -t && nginx -s reload +EOS +sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh ``` -**실행할 수 없었다.** +`deploy/` 는 **실제로 갱신된 인증서가 있을 때만** 실행된다. `post/` 는 갱신 +여부와 무관하게 매번 돌므로, 하루 두 번 쓸데없이 reload 하게 된다. + +**확인 방법** — 훅을 넣었다고 끝이 아니다. 다음 강제 갱신 때 `nginx` 워커 +PID 가 바뀌는지 봐야 한다. 이 실험이 그 확인 절차다. + +### 4-3. reload 는 무중단이다 — 측정됨 + +계획서의 질문에 대한 답이다. + +**새 연결** — 0.2초 폴링, 08:10:51 ~ 09:02, **전체 8856건 / 비200 0건** + +| 구간 | n | 중앙 | p95 | 최대 | +|---|---|---|---|---| +| 장기 평시 08:20~08:50 | 5398 | 98.0ms | 205.7ms | 1942.9ms | +| reload 직전 2분56초 | 489 | 116.0ms | 200.8ms | 387.7ms | +| reload 직후 2분08초 | 342 | 132.5ms | **204.3ms** | 475.0ms | + +p95 가 205.7 → 204.3 으로 **사실상 동일**하고 최대값은 오히려 낮다. +10초 구간 중앙값은 reload 전후 모두 80~190ms 사이를 오간다 — WiFi 잡음이지 +reload 의 흔적이 아니다. + +**진행 중이던 요청** — 여기가 계획서가 정확히 물은 지점이다. ``` -$ sudo -n -l -sudo: a password is required -$ sudo -n systemctl reload nginx -sudo: a password is required +08:58:40 요청 시작 (845KB @ 20k/s) +08:58:52 ← nginx -s reload. 요청 시작 12초 뒤, 전송 한가운데 +08:59:21 종료: 코드=200 바이트=845361(전량) 연결수=1 curl종료=0 ``` -**test-server 의 sudo 는 비밀번호를 요구한다.** 게스트(kc-lab-1/2)는 무암호라 -A층에서 `conntrack`·`tc` 를 자유롭게 썼는데, **호스트는 다르다.** - -> **이 사실은 B-7 에서 처음 드러났다** — nginx 설정을 읽으려던 시도가 계속 -> 빈 결과였고, 그게 **sudo 의 조용한 실패**였다. 여기서 다시 확인된다. - -### 아직 답하지 못한 것 — 과 그 앞에서 먼저 한 것 - -`sudo` 를 못 쓰니 **주입은 못 한다.** 하지만 주입 없이도 할 수 있는 일이 -하나 남아 있었고, 그게 사실 더 중요하다 — **대조군**이다. - -> 갱신 중에 `000` 이 한 번 나왔다고 하자. 그게 갱신 탓인가? -> **평시 오류율을 모르면 대답할 수 없다.** A-6 에서 −41% 를 "영향 없음"이라 -> 적었다가 틀린 것도, A-8 에서 표본 9개로 무중단을 주장한 것도 같은 종류의 -> 실수였다. 그래서 주입보다 대조군을 먼저 잡는다. - -#### 대조군 1 — 새 연결을 받아주는가 (0.2초 × 900회 = 180초) - -``` -표본 900 개 -[상태코드] 900 × 200 ← 오류 0 -[응답시간] 최소 67 · 중앙 98 · p95 195 · 최대 1121 ms -[TLS 핸드셰이크] 900회 / 900 ← 매 요청이 새 연결이다 -``` - -**잡음 바닥이 0이다.** 이 뜻은 명확하다 — 갱신 중에 비200 이 단 한 번이라도 -나오면, 그건 갱신 탓으로 귀속해도 된다. 대조군이 0이 아니었다면 그렇게 말할 수 -없었다. - -#### 대조군 2 — 그런데 위 장치는 D-4 의 질문에 답하지 못한다 - -핸드셰이크가 900/900 이라는 것은 **매 요청이 새 TCP 연결**이라는 뜻이다. -그래서 이 폴링이 재는 것은 "새 연결을 받아주는가" 이지, 계획서가 물은 -**"갱신 중 진행 중이던 요청은 어떻게 되는가"** 가 아니다. reload 순간에 -실제로 전송 중인 요청이 있어야 잴 수 있다. - -장치를 따로 만들었다 — 845KB 짜리 관리 콘솔 번들을 `--limit-rate 20k` 로 -일부러 느리게 받아, 요청 하나를 **42초 동안 살아 있게** 만든다. - -``` -코드=200 받은바이트=845361 총시간=41.392198s 연결수=1 실효속도=20423B/s -기대 크기 845361 / 실제 845361 bytes -``` - -주입 시 이 값과 비교해 판정한다. - -| 관측 | 뜻 | +| 관측 | 읽는 법 | |---|---| -| 코드 200 · 크기 845361 · 연결수 1 | 진행 중이던 요청이 끝까지 살았다 = graceful | -| 코드 000 또는 크기 부족 | reload 가 진행 중이던 연결을 끊었다 | -| 연결수 ≥ 2 | 중간에 끊겨 curl 이 다시 붙었다 (사용자에겐 지연으로 보인다) | +| 바이트가 전량이다 | 잘리지 않았다 | +| **연결수가 1이다** | 중간에 끊겨 재연결한 게 아니다 | +| 코드 200 | 옛 워커가 이 요청을 끝까지 책임졌다 | -#### 남은 항목 +옛 인증서로 시작한 연결이 **새 워커 전환을 관통해** 끝까지 갔다. +in-flight 전체 50건 중 종료코드 ≠ 0 은 **0건**이다. -| 계획서의 항목 | 상태 | +> 문서가 "nginx 의 reload 는 설계상 무중단이지만 **확인하지 않았으므로 그렇게 +> 쓰면 안 된다**"고 유보했던 명제가, 이제 측정으로 뒷받침된다. +> **그리고 유보가 옳았다** — 같은 자리에서 유보 없이 썼다면 맞았겠지만, +> 바로 옆의 "갱신하면 반영된다"는 명제는 틀렸다. 어느 쪽이 틀릴지는 미리 알 수 없다. + +### 4-4. 남은 미측정 + +| 항목 | 상태 | |---|---| -| 갱신 중 새 연결이 끊기는가 | **대조군 확보** (평시 0/900 실패) · 주입 대기 | -| 갱신 중 진행 중이던 요청은 | **장치 확보** (42초 in-flight) · 주입 대기 | -| `certbot-renew.timer` 가 실제 갱신을 하는가 | **미측정** (58일 뒤에야 알 수 있다) | - -주입 명령은 하나뿐이고, 비밀번호가 있는 사람만 실행할 수 있다. - -```bash -ssh test-server -sudo certbot renew --force-renewal -``` - -### 이론적으로는 무엇을 기대하는가 - -``` - certbot renew → 새 인증서 파일 저장 - └─ deploy-hook: nginx -s reload - └─ nginx 는 새 워커를 띄우고 옛 워커는 진행 중 요청을 끝낸 뒤 종료 - → graceful. 진행 중 요청은 옛 인증서로 완결된다 -``` - -**nginx 의 reload 는 설계상 무중단**이지만, **확인하지 않았으므로 그렇게 -쓰면 안 된다.** 이 실험대에서 반복해 배운 것이 바로 그것이다 — -A-1 의 NetworkPolicy, A-3 의 `--grace-period=0`, B-5 의 AOF 모두 -**"그럴 것이다" 가 틀렸던 사례**다. - ---- +| `certbot-renew.timer` 가 **실제 갱신**을 하는가 | **미측정.** 약 58일 뒤에야 조건이 성립한다 | +| deploy 훅을 넣으면 자동 반영되는가 | **미측정.** 훅은 아직 넣지 않았다 | --- ## 증거 파일 -**증거 수집 시각: 2026-09-04 15:09 – 15:09 KST** (파일 mtime 기준. 문서 상단의 시각 표기는 작성 시점이라 다를 수 있다.) +**증거 수집: 2026-09-04 · 감시 08:10:51 – 09:02 UTC** (파일 mtime 기준) -| 파일 | 종류 | -|---|---| -| [`01-certificate-state.txt`](evidence/d4-certificate-renewal/01-certificate-state.txt) | 터미널 원문 | +| 파일 | 종류 | 무엇을 보여주는가 | +|---|---|---| +| [`01-certificate-state.txt`](evidence/d4-certificate-renewal/01-certificate-state.txt) | 터미널 | SAN 3개 · 체인 4단계 `Verify return code: 0` | +| [`05-control-no-injection.txt`](evidence/d4-certificate-renewal/05-control-no-injection.txt) | 터미널 | **대조군 1** — 900/900 200, 오류 0 · 핸드셰이크 900/900 | +| [`06-inflight-control.txt`](evidence/d4-certificate-renewal/06-inflight-control.txt) | 터미널 | **대조군 2** — 42초 in-flight 장치, 845361바이트 완주 | +| [`07-renewal-hook-missing.txt`](evidence/d4-certificate-renewal/07-renewal-hook-missing.txt) | 터미널 | nginx 워커 PID 로 본 "reload 없음" · 유닛에 `ExecStartPost` 없음 · crt.sh 로는 못 가림 | +| [`08-inflight-artifact.txt`](evidence/d4-certificate-renewal/08-inflight-artifact.txt) | 터미널 | 76건 실패가 **로컬 아티팩트**임을 대조 폴링으로 가려낸 기록 | +| [`09-serial-timeline.txt`](evidence/d4-certificate-renewal/09-serial-timeline.txt) | 터미널 | 일련번호 564표본 — 08:58:52 에 바뀌는 순간 | +| [`10-reload-poll-window.txt`](evidence/d4-certificate-renewal/10-reload-poll-window.txt) | 터미널 | reload 전후 60초 새 연결 원문 (비200 0건) | +| [`11-inflight-full.txt`](evidence/d4-certificate-renewal/11-inflight-full.txt) | 터미널 | in-flight 전체 — reload 를 관통한 08:58:40 요청 포함 | +| [`12-certbot-state.txt`](evidence/d4-certificate-renewal/12-certbot-state.txt) | 터미널 | `certbot certificates` · `archive/` mtime · **훅 3개 디렉터리 전부 비었음** | +| [`13-verdict.txt`](evidence/d4-certificate-renewal/13-verdict.txt) | 터미널 | **판정** — 36분 39초 공백 + reload 무중단, 수치 전량 | 파일별 상세는 [`evidence/d4-certificate-renewal/README.md`](evidence/d4-certificate-renewal/README.md). diff --git a/docs/experiment-index.md b/docs/experiment-index.md index 3851796..49b80e6 100644 --- a/docs/experiment-index.md +++ b/docs/experiment-index.md @@ -26,7 +26,7 @@ | **D-1** | 백업·복구 | `...d1-backup-restore` | **빈 데이터베이스가 `200` 을 냈다** | | **D-2** | 버전 업그레이드 | `...d2-version-upgrade` | **이미지를 되돌려도 스키마는 안 돌아온다** | | **D-3** | 비밀 관리 | `...d3-secret-management` | **RBAC 만 실제로 감춘다** | -| **D-4** | 인증서 갱신 | `...d4-certificate-renewal` | 구성은 정상. **강제 갱신은 사람 손이 필요** | +| **D-4** | 인증서 갱신 | `...d4-certificate-renewal` | **갱신은 됐는데 36분 39초 반영 안 됨** (훅 3경로 전부 비었음). reload 자체는 **무중단**(8856건 0실패) | | **후속** | 미측정 항목 채우기 | `...followup-untested-items` | 정방향 업그레이드 무중단 · **롤백 불가는 조건부였다** · role 변경은 요청으로 반영 안 됨 | ## 시각 자료 @@ -85,7 +85,7 @@ | A-6 | `tc ... dev eth0` | 인터페이스가 `enp1s0` 이다 | | A-6 | `enp1s0` 에 파드 IP 필터 | VXLAN 캡슐화로 **안 보인다** | | B-2 | `spring.sql.init` 스키마 | PostgreSQL 에 없는 `blob` 타입 + `continue-on-error` | -| B-7·D-4 | `sudo nginx -T` 등 | **호스트 sudo 가 비밀번호를 요구**한다 | +| B-7·D-4 | `sudo nginx -T` 등 | **호스트 sudo 가 비밀번호를 요구**한다. D-4 는 사용자가 직접 실행해 해소했다 | **그래서 실험마다 "주입 성공 신호" 를 먼저 정하게 됐다** — `cluster_size` 하락, `not properly shut down` 로그, iptables 패킷 카운터,