전체 가이드
높음 심각도리디렉션 체인

사이트에 HTTP→HTTPS 리디렉션이 필요한 이유

HTTPS를 사용할 수 있더라도, 사이트는 HTTP 요청을 능동적으로 HTTPS로 리디렉션해야 합니다. 그렇지 않으면 HTTP 버전에 도달한 사용자는 암호화되지 않아 가로챌 수 있는 연결에 머무릅니다.

무엇인가요

누군가 https:// 없이 yourdomain.com을 입력하면, 브라우저는 먼저 HTTP를 시도합니다. 서버가 포트 80에서 리디렉션 대신 콘텐츠로 응답하면 그 페이지 로드는 암호화되지 않습니다.

해결책은 모든 HTTP URL에서 같은 도메인의 HTTPS 대응 URL로의 영구(301) 리디렉션입니다.

왜 중요한가요

암호화되지 않은 트래픽은 네트워크 경로상의 누구나 — 공용 Wi-Fi, 침해된 라우터, ISP — 읽거나 수정할 수 있습니다. 여기에는 폼 데이터와 Secure 플래그 없는 쿠키가 포함됩니다.

잘못된 도메인을 가리키는 리디렉션이나 여러 홉의 체인은 지연을 더하고, 그 자체가 설정 오류나 하이재킹의 신호일 수 있습니다.

고치는 방법

nginx에서 리디렉션하기

포트 80에서 HTTPS로의 단일 301로 응답하세요.

server {
  listen 80;
  server_name yourdomain.com;
  return 301 https://$host$request_uri;
}
HSTS와 함께 사용하기

리디렉션은 첫 홉을 처리합니다. 그다음 HSTS가 브라우저에게 이후 방문에서 HTTP를 완전히 건너뛰라고 알려 줍니다. 둘을 함께 사용하세요.

체인을 짧게 유지하기

www/non-www와 후행 슬래시 변형을 거쳐 튕기지 말고, HTTP에서 정규 HTTPS URL로 한 홉에 곧바로 리디렉션하세요.

자주 묻는 질문

SSL 인증서만 있으면 충분하지 않나요?

아니요. 인증서는 HTTPS를 가능하게 하지만, 리디렉션이 없으면 사용자가 여전히 HTTP 버전을 로드할 수 있습니다. 둘 다 필요합니다.

301인가요 302 리디렉션인가요?

301(영구)을 사용하세요. 캐시 가능하며 브라우저와 검색 엔진에 HTTPS가 정규 버전임을 알립니다.

내 앱도 영향을 받나요?

AppSafe는 이 문제와 수십 가지 다른 문제를 한 번의 무료 스캔으로 점검합니다.

내 앱 무료 스캔