HSTS 설정 확인 · 보안 헤더 검사
HSTS는 브라우저에게 '이 도메인은 앞으로 평문 HTTP로 접속하지 말라'고 지시하는 헤더입니다. 리다이렉트가 일어나기 전, 신뢰할 수 없는 네트워크에서 첫 요청이 가로채일 수 있는 틈을 닫아줍니다. 도메인을 입력하면 실제 응답 헤더를 읽어 HSTS와 함께 실제 공격을 막아주는 나머지 헤더들도 보고해 드립니다.
분석한 웹사이트 959개 기준
공개 데이터베이스의 전체 사이트를 대상으로 집계했습니다.
왜 중요한가
리다이렉트와 HSTS는 다릅니다
HTTP를 HTTPS로 리다이렉트해도, 맨 처음 요청은 이미 평문으로 기기를 떠난 뒤입니다. 적대적인 네트워크에서는 그 요청이 가로채여, 서버의 리다이렉트가 도착하기도 전에 응답이 위조될 수 있습니다 — 전형적인 SSL 스트리핑 공격입니다. HSTS는 브라우저가 아무것도 보내기 전에 스스로 주소를 HTTPS로 바꿔 쓰게 만들어 그 틈을 닫습니다.
동시에 잘못 넣으면 가장 위험한 헤더이기도 합니다
HSTS는 기간이 붙은 약속입니다. 브라우저가 `max-age=31536000`을 한 번 본 순간부터 1년간 그 도메인에 평문 HTTP 접속을 거부하고, 이미 방문자 기기에 저장된 그 약속을 원격으로 취소할 방법은 없습니다. 인증서가 만료되거나 HTTPS 준비가 안 된 서브도메인이 있으면, 해당 사용자는 '무시하고 접속' 버튼도 없는 오류 화면을 보게 됩니다. max-age를 1년부터 시작하지 말고 단계적으로 올려야 하는 이유입니다.
고치는 방법
1. HTTPS부터 완전히 정상화하세요
적용 대상이 될 모든 서브도메인이 유효한 인증서를 갖고 HTTPS로 제대로 응답해야 하며, 내부 링크와 리소스도 이미 https여야 합니다. 이전이 덜 끝난 사이트에 HSTS를 얹으면 '경고'가 '접속 불가'로 바뀝니다.
2. max-age를 단계적으로 올리세요
`Strict-Transport-Security: max-age=300`으로 시작해 아무것도 깨지지 않는지 확인하고, 86400(하루) → 2592000(한 달) → 31536000(1년) 순으로 올립니다. 각 단계를 되돌릴 수 있는 건 오직 직전 구간이 짧았기 때문입니다.
3. includeSubDomains는 정말 그럴 때만
`includeSubDomains`는 아직 만들지도 않은 서브도메인과, 나중에 누군가 http로만 띄울 내부 도구까지 전부 포함합니다. 최종적으로는 맞는 설정이지만, 성급하게 넣었다가 자기 스테이징 환경에 못 들어가게 되는 게 가장 흔한 사고입니다.
4. preload는 영구 조치로 간주하세요
브라우저 preload 목록에 제출하면 크롬·파이어폭스·사파리·엣지 빌드 자체에 도메인이 박힙니다. 빼는 데는 몇 달이 걸립니다. 전체 헤더(`max-age=31536000; includeSubDomains; preload`)를 충분히 오래 무리 없이 돌린 뒤에만 하세요.
5. 설정 파일 연 김에 나머지도 같이
`X-Content-Type-Options: nosniff`, `Referrer-Policy: strict-origin-when-cross-origin`, 프레임 보호(`X-Frame-Options: SAMEORIGIN` 또는 CSP `frame-ancestors`) 세 줄은 호환성 위험이 없습니다. 진짜 까다로운 건 CSP인데, `Content-Security-Policy-Report-Only`로 먼저 돌려 리포트를 읽어본 뒤 적용하세요.
설명 말고, 그냥 고쳐드릴까요?
이 항목은 서버 설정 영역이라 호스팅형 플랫폼에서는 저희가 직접 손댈 수 없습니다. 그래서 할 수 있다고 하지 않습니다. 고정가 작업에 포함되는 건, 호스팅사나 개발자가 그대로 적용할 수 있게 정리한 설정 지시서입니다.
고정가 보기 →자주 묻는 질문
- HSTS가 SEO에 영향을 주나요?
- 직접적으로는 아닙니다 — HSTS라는 순위 요소는 없습니다. HTTPS 자체가 약한 순위 신호이고, 오히려 간접 효과가 큽니다. 혼합 콘텐츠 경고가 사라지고, 첫 방문마다 붙던 리다이렉트 한 번이 없어지고, 방문자를 쫓아내는 브라우저 경고 화면이 뜨지 않습니다.
- 잘못 설정했으면 어떻게 되돌리나요?
- `max-age=0`을 내려보내고 기다리는 수밖에 없습니다. 다시 방문한 브라우저는 항목을 지우지만, 저장된 max-age가 만료되기 전에 재방문하지 않은 사용자는 계속 HTTPS로 묶여 있습니다. 원격으로 강제할 방법이 없습니다 — 천천히 올려야 한다는 주장의 근거가 바로 이겁니다.
- '헤더를 확인할 수 없음'이라고 나옵니다
- 페이지를 렌더링 방식으로만 읽을 수 있어서 원본 응답 헤더를 관찰하지 못했다는 뜻입니다. 이 경우 헤더 검사는 '실패'가 아니라 '해당 없음'으로 표시되고, 0점이 아니라 점수 계산에서 제외됩니다.
- HSTS만 있으면 충분한가요?
- 아닙니다. 전송 구간만 보장합니다. XSS, 클릭재킹, MIME 스니핑은 각각 CSP, 프레임 보호, nosniff가 담당합니다. HSTS는 가장 먼저 넣을 헤더이지 마지막 헤더가 아닙니다.
이 검사를 통과하지 못한 실제 사이트
저희 데이터베이스에서 실시간으로 가져옵니다 — 각 사이트의 전체 리포트로 연결됩니다.
sajunara.co.kr사주나라 - 대한민국 대표 전화사주 운세상담 1위 플랫폼D 50SEO 85AI 41Schema 10
gguljum.com꿀점 l 전화사주 잘보는곳, 전화신점, 용한점집, 유명한 점사, 무료사주사이트F 39SEO 64AI 11Schema 0
injalal.com인잘알 - 가전 렌탈 - 브랜드별 최저가 비교B 71SEO 90AI 66Schema 35
hawaii.eduUniversity of Hawaii SystemD 44SEO 70AI 45Schema 0- elab-log.blogspot.comELAB-BLOGB 78SEO 100AI 75Schema 60
- iqiyi.com爱奇艺 iQIYI-热门独播剧集在线观看D 40SEO 56AI 9Schema 20
vanityfair.comVanity Fair - Entertainment, Politics, and Fashion News | Vanity FairB 77SEO 100AI 77Schema 45- ispconfig.orgISPConfig Hosting Control PanelC 58SEO 90AI 13Schema 30