SUE 개발 블로그

HTTP와 HTTPS 본문

인터넷과 웹

HTTP와 HTTPS

이수광 2024. 1. 10. 16:10

HTTP 란 뭘까?

HTTP(Hyper Text Transfer Protocol)는 서버와 클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다.

즉, 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로 1989년 팀 버너스 리에 의해 처음 설계되며 80번 포트를 사용한다.

 

HTTP는 사용자 브라우저가 서버에게 HTTP 요청(Request)을 전송하면 서버는 HTTP 응답(Response)를 전송해준다.

위 과정에서 브라우저가 보낸 요청에 서버가 응답하며 그에 맞는 데이터를 전송해주나 이 데이터는 암호화되지 않는다.

일반 텍스트로 되어있기 때문에 중간에 가로채거나 정보가 노출될 경우 보안적인 문제가 발생하게 된다.

HTTPS 등장

HTTPS(Hyper Text Transfer Protocol Secure)는 HTTP에 SSL/TLS(Secure Socket Layer/Trasport Layer Security) 프로토콜을 추가한 것으로 쉽게 말하자면 HTTP에 데이터 암호화를 추가해 보안성을 올린 버전이다. 네트워크 상 중간에 제 3자가 정보를 볼 수 없게 암호화를 해주는 것이며 HTTP와는 다르게 443번 포트를 사용한다.

 

HTTPS 를 어떻게 적용하나?

1. 443 포트 준비

코드를 통해서 서버 측 HTTP 통신 방식인 80번 포트를 막고, 기본적으로 HTTPS가 통신하는 443 포트를 열어준다. 또는 80번 포트를 리디렉션을 통해 443 포트로 변경하여, 최종적으로 443 포트에서 통신이 이루어지게 한다.

 

2. SSL/TLS 인증서 구매

인증서의 최대 유효기간은 13개월이다. 인증서가 만료되면 브라우저는 웹 방문자에게 웹 사이트가 안전하지 않다는 경고를 표시하므로, 이전 인증서를 해지하고 갱신된 인증서로 교체해야 한다.

 

3. 서버에 인증서 설정

인증서 발급이 완료되면, Apache, Nginx등 사용하는 서버의 종류를 고려하여 웹 서버에 인증서 파일을 설치하고 HTTPS를 활성화 한다. 또한 모든 HTTP요청을 HTTPS로 자동 리디렉션하도록 웹 서버를 설정한다. 이를 통해 웹 방문자가 HTTP를 통해 사이트에 접속하더라도 자동으로 보안 연결로 전환된다.

 

4. 그외 보안 강화 설정

HSTS(HTTP Strict Transport Security)를 활성화하여, 브라우저가 웹 사이트와 오직 HTTPS를 통해서만 통신하도록 강제하거나, 보안 관련 HTTP 헤더를 추가하여 XSS, 클릭재킹등의 공격으로부터 보호할 수 있다.

 

5. 웹 사이트 테스트 검증

URL 주소 표시 줄에 '자물쇠 아이콘'이 표시되는지 확인할 수 있고, HTTP URL로 웹 사이트에 접근하면 자동으로 HTTPS로 리디렉션되는지도 확인 가능하다. 온라인 SSL 검사 도구를 사용하여 인증서의 설치 상태를 검증하는 방법도 있다.

단순히 보안성을 올리기 위해 사용하나요?

HTTP와 HTTPS는 단순히 보안성 뿐만 아니라 SEO품질에도 있다.
HTTPS를 사용하게 되면 검색엔진 최적화(SEO)에 있어 큰 혜택을 얻을 수 있다. 구글이 HTTPS 웹사이트에 가산점을 주며, 이용자들도 더 안전하다고 생각하는 사이트를 더 자주 방문하기 때문이기도 하다.

 

가속화된 모바일 페이지(AMP, Accelerated Mobile Pages)를 만들고 싶을 때도 HTTP 프로토콜을 사용해야한다.

AMP란 구글이 모바일 기기에서 훨씬 빠르게 콘텐츠를 로딩하기 위해 만든 것으로 HTML에서 불필요한 부분을 없앤 것이라고 볼 수 있다. 구글의 SERP(검색 결과 페이지)를 보면 스마트폰과 태블릿 사용자들이 모바일에서 사용하기 편하도록 AMP 콘텐츠들이 두드러지는 것을 확인할 수 있다. 최근엔 모바일 친화적 웹사이트를 만드는 것과 모바일 검색순위 및 지역에 SEO를 증가시키는게 중요해지므로 HTTPS는 필수적인 것이라고 볼 수 있다.

'인터넷과 웹' 카테고리의 다른 글

REST, REST API, RESTful  (0) 2024.01.10
크로스 브라우징 ( Cross Browsing )  (4) 2023.12.03
인터넷과 웹  (0) 2023.11.04