# HTTPS termination: nginx or Caddy 두 예제 모두 public `443`에서 TLS를 종료하고 private Docker network의 `keycloak:8080`으로 전달한다. Keycloak 쪽 설정은 `deploy/reverse-proxy/keycloak.env.example`의 hostname/proxy contract를 같이 사용한다. - nginx: 인증서 배포·갱신을 운영자가 담당할 때 적합하다. - Caddy: ACME를 통한 인증서 수명주기를 proxy가 담당하게 할 때 간단하다. - 둘을 동시에 production entry point로 띄우지 않는다. - 인증서와 private key는 repository 또는 image에 포함하지 않는다. - HTTP challenge/redirect 및 방화벽의 80/443 허용은 배포 환경에서 별도로 결정한다. 검증 스크립트는 임시 자체 서명 인증서를 만들고 두 vendor image에서 설정을 각각 validate한 뒤 임시 파일을 제거한다. ```sh ./scripts/verify-https-termination-config.sh ```