HSTS 헤더 빌더
Strict-Transport-Security 헤더 구성 — max-age·includeSubDomains·preload, preload 리스트 자격 실시간 체크.
Strict-Transport-Security: max-age=31536000; includeSubDomains- ✓max-age ≥ 31536000 (1년)
- ✓includeSubDomains 켜짐
- ×preload 디렉티브 켜짐
모든 HTTPS 응답에 적용. 브라우저가 본 가장 오래된 매칭 정책만 강제 적용.
사용법
- HSTS 처음 켤 땐 롤아웃 프리셋(5분) — 문제 시 되돌리기 쉬움.
- 안정되면 운영 프리셋(1년 + includeSubDomains)로.
- 모든 서브도메인이 영구 HTTPS 작동 확인 후에만 preload — preload 해제는 수개월.
자세한 설명
펼치기접기
몇 가지 토글을 Strict-Transport-Security 헤더로 바꿔 줍니다. 이 헤더는 모든 브라우저에게 해당 도메인에서 HTTPS를 고수하라고 지시합니다. 프리셋 세 가지가 있습니다. 새 정책을 시험하는 5분짜리 창, includeSubDomains를 포함한 1년짜리 상식적인 운영 설정, 그리고 HSTS 프리로드 목록이 요구하는 2년 이상 구성입니다. 설정이 크로미움의 프리로드 제출 요건에 맞으면 적격 표시가 켜져서 적용해도 되는지 알 수 있습니다.
HSTS는 브라우저가 기억하는 것이고, 그래서 max-age는 설정이 아니라 약속입니다. 방문자가 헤더를 한 번 보고 나면 그 브라우저는 타이머가 끝날 때까지 해당 호스트에 대해 평문 HTTP를 거부하며, 여러분이 되돌아가 그 기간을 줄일 수 없습니다. max-age=31536000을 내보낸다는 것은 오늘 방문한 모든 사람에게 1년간 HTTPS를 강제한다는 뜻이고, 내일 마음이 바뀌어도 마찬가지입니다. 5분 프리셋은 그런 대가 없이 새 정책을 시험하라고 있는 것이며, 철회하는 방법은 영향받은 브라우저 전부가 볼 만큼 오래 max-age=0을 내보내는 것입니다.
이 헤더는 설계상 평문 HTTP에서 무시되므로, 첫 방문이 아니라 두 번째 방문을 보호합니다. 호스트 이름만 입력한 사용자는 리다이렉트가 브라우저에 규칙을 가르치기 전에 여전히 평문 요청을 한 번 보내고, 망 위의 공격자가 노리는 것이 바로 그 요청입니다. 프리로드는 정확히 그 틈에 대한 답입니다. 브라우저가 목록을 함께 배포하므로 맨 처음 요청부터 HTTPS로 갑니다.
includeSubDomains는 미처 생각하지 못한 이름까지 닿습니다. 내부 도구, 인증서가 없는 낡은 장비, 헤더를 내보낸 뒤에 만든 호스트를 포함해 모든 서브도메인을 덮습니다. 그 도메인 아래에서 HTTPS를 제공할 수 없는 것은 타이머가 살아 있는 동안 그 브라우저에서 닿을 수 없게 됩니다.
프리로드는 하는 것보다 되돌리는 것이 훨씬 어렵습니다. 제거는 수동 요청이고, 그 뒤 브라우저 릴리스가 반영해 나가기를 기다려야 하는데 단위가 달입니다. 현재와 앞으로의 모든 서브도메인이 HTTPS를 제공할 것이 확실할 때만 도메인을 제출하십시오.
자주 묻는 질문
max-age가 실제로 뭐 함?
브라우저에 "이 도메인은 HTTPS 전용"을 그 초만큼 기억하라고 지시. 메모리 유지되는 동안, 브라우저는 도메인으로 평문 http 내비게이션 거부, 전송 전 https로 업그레이드.
preload 되돌릴 수 있음?
느리게. Chromium preload 리스트 제출은 쉬움; 제거는 별도 요청 필요, 모든 브라우저 릴리스 전파에 수개월. 모든 서브도메인 HTTPS 작동 확신 전엔 preload 켜지 마.
첫 방문에서는 이 헤더가 무시되는 이유는?
브라우저는 HTTPS 요청을 한 번 끝낸 뒤에야 정책을 알게 되고, 평문 HTTP로 전달된 헤더는 설계상 무시하기 때문이다. 그러지 않으면 네트워크상의 공격자가 헤더를 심을 수 있다. 그래서 HSTS는 재방문자를 보호하지 첫 요청을 보호하지 않고, 그 빈틈을 메우려고 프리로드 목록이 있다. 어느 쪽이든 HTTP에서 HTTPS로의 영구 리디렉션은 여전히 필요하다.
includeSubDomains는 실제로 무엇을 약속하는 건가?
그 도메인 아래의 모든 호스트다. 잊고 있던 것까지 포함된다. 오래된 인트라넷 이름, 스테이징 서버, 협력사 CNAME 등 아직 HTTP만 쓰는 서브도메인은 그 헤더를 본 브라우저에서 접근 불가가 된다. 켜기 전에 서브도메인 목록을 훑어라. 그리고 이 약속은 마음을 바꿀 때까지가 아니라, 공표한 max-age 동안 지속된다.
관련 도구
Content-Security-Policy 빌더
디렉티브별 소스 리스트로 CSP 헤더 빌드, 3개 시작 프리셋·위험한 와일드카드 실시간 경고.
네트워크
Referrer-Policy 헤더 빌더
Referrer-Policy 값 선택 → 송출 요청이 보낼 Referer 헤더 정확히 확인 — 동일 오리진, 크로스 오리진 HTTPS, HTTPS→HTTP 다운그레이드.
네트워크
SVCB / HTTPS 레코드 생성·해독기
SVCB·HTTPS 레코드를 정규화·인코딩·검사합니다. SvcParams 해독, 와이어 바이트 분해, 그리고 위반한 RFC 9460 조항을 이름으로 지적합니다.
네트워크
CSP 해시 생성기
Content-Security-Policy로 화이트리스트하려는 인라인 <script>·<style>의 sha256/384/512 base64 해시 계산.
네트워크
/.well-known/* URI 레퍼런스
IANA 등록 well-known URI 검색 카탈로그 — security.txt·openid-configuration·apple-app-site-association·acme-challenge 외 30+개, RFC 레퍼런스·사용 사례 포함.
네트워크
TLS 암호 스위트 디코더
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 같은 IANA 등록 암호 스위트 이름을 붙여넣으면 키 교환·인증·대칭 암호·모드·MAC으로 분해해 보여주고, 순방향 비밀성·AEAD·해시 강도·이미 깨진 알고리즘까지 점검해 등급을 매깁니다.
네트워크