[P1][ops] ACME renewal 후 running TLS/QUIC config reload 또는 restart hook 지원 #34

Closed
opened 2026-05-02 04:34:09 +00:00 by boxqkrtm · 1 comment

문제

ACME renewal이 파일 material은 갱신하지만 running TLS acceptor와 QUIC config는 relay restart 후 새 material을 load하는 구조로 정리되어 있습니다.

관련 후보:

  • crates/portal-relay/src/state/acme.rs
  • TLS/QUIC listener initialization 경로
  • 운영 문서/Docker 배포 문서

운영 영향

  • 인증서 파일은 갱신되어도 running process는 만료 예정 인증서를 계속 사용할 수 있음
  • 별도 restart orchestration이 없으면 cert expiry incident 가능

제안

  • TLS/QUIC config hot reload 지원 검토
  • 또는 renewal 성공 후 graceful restart hook/systemd/k8s hook 문서화
  • cert expiry metric/alert 노출
  • renewal 실패/성공 audit log 강화

완료 기준

  • renewal 후 새 인증서가 running listener에 반영되거나 명확한 restart hook 제공
  • cert expiry metric/log로 운영자가 알 수 있음
  • ACME renewal operational test 또는 문서 추가

검토 기준: 업로드된 Rust portal-relay 코드 정적 리뷰. 리뷰 환경에서는 cargo check/test/clippy를 실행하지 못했습니다.

## 문제 ACME renewal이 파일 material은 갱신하지만 running TLS acceptor와 QUIC config는 relay restart 후 새 material을 load하는 구조로 정리되어 있습니다. 관련 후보: - `crates/portal-relay/src/state/acme.rs` - TLS/QUIC listener initialization 경로 - 운영 문서/Docker 배포 문서 ## 운영 영향 - 인증서 파일은 갱신되어도 running process는 만료 예정 인증서를 계속 사용할 수 있음 - 별도 restart orchestration이 없으면 cert expiry incident 가능 ## 제안 - TLS/QUIC config hot reload 지원 검토 - 또는 renewal 성공 후 graceful restart hook/systemd/k8s hook 문서화 - cert expiry metric/alert 노출 - renewal 실패/성공 audit log 강화 ## 완료 기준 - renewal 후 새 인증서가 running listener에 반영되거나 명확한 restart hook 제공 - cert expiry metric/log로 운영자가 알 수 있음 - ACME renewal operational test 또는 문서 추가 --- 검토 기준: 업로드된 Rust `portal-relay` 코드 정적 리뷰. 리뷰 환경에서는 `cargo check/test/clippy`를 실행하지 못했습니다.
gofix closed this issue 2026-05-03 18:55:59 +00:00
Owner

수용했습니다. PR #63에서 managed ACME renewal 성공 후 실행되는 ACME_RENEW_HOOK을 추가했습니다. hot TLS/QUIC reload는 구조 변경이 커서 이번 범위에서는 제외하고, 운영자가 systemd/k8s/container restart 또는 reload를 hook으로 연결할 수 있게 했습니다. 검증은 root-owned local target cache를 피하기 위해 별도 CARGO_TARGET_DIR로 cargo test --locked 및 cargo clippy --locked --all-targets -- -D warnings를 실행했습니다.

수용했습니다. PR #63에서 managed ACME renewal 성공 후 실행되는 ACME_RENEW_HOOK을 추가했습니다. hot TLS/QUIC reload는 구조 변경이 커서 이번 범위에서는 제외하고, 운영자가 systemd/k8s/container restart 또는 reload를 hook으로 연결할 수 있게 했습니다. 검증은 root-owned local target cache를 피하기 위해 별도 CARGO_TARGET_DIR로 cargo test --locked 및 cargo clippy --locked --all-targets -- -D warnings를 실행했습니다.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
gofix/portal-tunnel-rs#34
No description provided.