HSTS의 max-age는 브라우저가 HTTPS 전용 정책을 기억하는 기간입니다. includeSubDomains를 붙이면 그 정책은 응답을 낸 호스트의 하위 도메인에도 적용됩니다.
하위 호스트가 모두 HTTPS를 제공하는지 확인한 뒤 범위를 넓혀야 합니다. 브라우저 preload 목록은 RFC의 단순한 지시자와 같은 것이 아니며 별도 제출·관리 절차입니다.
HSTS는 브라우저가 기억하는 HTTPS 정책입니다
서버가 HTTPS 응답으로 Strict-Transport-Security 헤더를 보내면 브라우저는 지정 기간 동안 해당 호스트를 HTTPS로만 접속하도록 기억합니다. max-age=31536000은 초 단위의 1년 예시이며, 값이 만료되기 전에 새 헤더가 오면 정책 기간이 갱신됩니다. 이 헤더는 HTTPS 연결에서만 처리해야 합니다. HTTP로만 접속한 첫 사용자의 최초 연결까지 항상 보호하는 것은 아닙니다.
includeSubDomains는 하위 호스트를 빠짐없이 조사하라는 뜻입니다
includeSubDomains는 헤더를 받은 호스트의 자식뿐 아니라 그 아래 단계의 하위 도메인에도 정책을 확장합니다. 예를 들어 example.test에서 이 지시자를 보내면 api.example.test, legacy.api.example.test도 영향을 받습니다. 사용자가 생각하는 ‘공개 웹’만 조사하면 안 됩니다. 내부 관리자, 레거시 로그인, 외부 업체가 관리하는 서브도메인, 테스트 호스트가 HTTP만 지원하거나 인증서가 준비되지 않았다면 사용자가 접속하지 못할 수 있습니다.
가상 도메인 지도를 직접 채웁니다
| 호스트 | HTTPS·인증서 확인 | includeSubDomains 전 판단 |
|---|---|---|
| www.example.test | TLS 적용 확인 | 준비 여부와 만료 경보 확인 |
| api.example.test | 별도 API 인증서 필요 | 클라이언트·모바일 호출도 점검 |
| legacy.example.test | HTTP만 남았다고 가정 | 전환 전 범위에 넣지 말 것 |
| admin.dev.example.test | 개발망·내부 DNS 확인 | 접속 장치와 운영 경로 조사 |
이 표는 확인할 대상을 떠올리기 위한 연습입니다. 실서비스의 DNS 목록이 아니며 호스트 존재 여부도 증명하지 않습니다. 와일드카드 인증서가 있다는 이유만으로 모든 하위 서버의 HTTPS가 정상이라고 결론 내릴 수 없습니다. 각 호스트에서 TLS 종단, 리다이렉트, 인증서 자동 갱신, HTTP 의존 링크를 따로 점검하세요.
Preload는 별도의 배포·신청 단계입니다
HSTS 표준의 응답 헤더는 브라우저가 접속하면서 정책을 학습하는 방식입니다. 브라우저 내장 preload 목록은 미리 포함된 도메인 정책으로 시작 연결 위험을 줄이는 별도 운영 절차입니다. preload 문자열을 헤더에 덧붙였다고 자동으로 목록에 등록되는 것이 아닙니다. 신청 조건, 하위 도메인 전체 준비, 브라우저 반영 시차와 제거 지연을 별도 공식 안내에서 확인해야 합니다. 사전 목록 등록은 되돌리기가 느릴 수 있습니다.
범위 확대 전에 순서대로 검토합니다
- 응답 헤더를 보내는 정확한 호스트와 현재 max-age를 기록합니다.
- DNS·인증서·로그·자산 목록으로 하위 도메인을 찾아 공개·내부·외부 관리로 분류합니다.
- 각 호스트의 HTTPS 리다이렉트, 인증서 갱신, HTTP 전용 API·콜백 의존을 시험합니다.
- 먼저 짧은 max-age로 관찰 기간을 두고 예상하지 못한 장애 경로를 찾습니다.
- 운영 안정성과 소유자 확인 후 max-age를 늘리고 includeSubDomains는 별도 승인합니다.
- Preload는 서비스의 현재 공식 신청 요건과 제거 부담까지 확인한 뒤 별도 결정합니다.
자식 도메인 일부만 준비됐다고 전체 범위를 켜지 않습니다
부모 도메인에 정책이 설정됐다는 사실은 DNS에 드러나지 않는 내부 장비까지 자동으로 HTTPS 전환하지 않습니다. 브라우저가 하위 호스트를 HTTPS로 바꾸어 연결을 시도할 뿐입니다. 접속할 수 없는 하위 서비스가 하나라도 있으면 장애가 될 수 있습니다. 모든 호스트를 확인할 수 없다면 적용 범위를 보수적으로 유지하고 준비 현황을 먼저 채우세요.
복습: 응답 한 줄만으로 preload됐나요?
문제: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload를 추가했습니다. 이로써 모든 하위 도메인이 HTTPS 준비됐고 브라우저 preload 목록에 등록됐다고 말할 수 있나요?
정답: 아닙니다. includeSubDomains는 준비 상태를 만들지 않고 영향을 확장합니다. preload 토큰은 별도 목록 제출·관리 절차를 대체하지 않으며, 하위 호스트의 실제 HTTPS 상태를 확인해야 합니다.
정답을 가리고 확인해 보세요
이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.
부모 호스트에 HSTS includeSubDomains를 적용하려 합니다. www는 HTTPS지만 legacy는 아직 HTTP 전용입니다. 전체 범위를 적용해도 되나요? preload 토큰은 무엇을 보장하나요?
정답과 해설 확인
아니요. 하위 호스트 전체에 HTTPS 접속 정책이 확장될 수 있으므로 legacy를 먼저 전환하거나 적용 범위를 다시 설계해야 합니다. preload 토큰만으로 브라우저 목록 등록을 보장하지 않습니다.RFC 6797의 includeSubDomains는 종속 도메인까지 정책 영향을 확장합니다. Preload 목록 운영은 표준 응답 지시자 하나와 별도입니다.