CS 지식

HTTP와 HTTPS 차이점과 HTTPS 적용 방법

양치개발자 2023. 12. 30. 23:49
반응형

HTTP와 HTTPS의 차이점

 

HTTP와 HTTPS 차이점을 알아보기 전에 우선 HTTP와 HTTPS가 무엇인지 알아보자.

 

HTTP

 

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

즉, 인터넷에서 하이퍼텍스트를 교환하기 위한 통신규약으로 80번 포트틀 사용하고 있는 상태를

가지고 있지 않는 Stateless 프로토콜이다.

또, 암호화가 되지 않는 평문 데이터를 전송하는 프로토콜이었기 때문에 HTTP로 비밀번호나 개인정보를 주고 받으면 제3자가 정보를 조회할 수 있다는 보안 부분의 취약점이 발생 할 수 있습니다.

 

HTTP와 HTTPS의 차이점

 

HTTPS(HyperText Transfer Protocol Secure)는 HTTP의 보안 취약점을 개선하고자 SSL(Secure Sokect Layyer) 보안 소켓 계층 이용해서 문제를 해결했다. SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고 서버 브라우저가 민감한 정보를 주고받을 때 이것도 도난당하는 것을 막아준다

 

두 프로토콜 사이에 가장 커다란 차이점은 바로 SSL 인증서이다. HTTPS는 쉽게 말해 HTTP 프로토콜에 보안 기능을 추가한 것이라고 할 수 있지만 보안 기능은 생각보다 매우 중요하다. 특히 신용 카드 정보나 비밀 번호 등 사용자들의 민감한 정보를 다루는 웹 사이트라면 더욱 그렇다.

 

SSL 인증서는 사용자가 사이트가 제공하는 정보를 암호화하는데 쉽게 말해서 데이터를 암호로 바꾼다고 생각하면 쉽다. 이렇게 전송된 데이터는 중간에서 누군가 훔쳐 낸다고 하더라도 데이터가 암호화되어있기 때문에 해독할 수 없다. 그 외에도 HTTPS는 TLS(전송 계층 보안) 프로토콜 통해서도 보안을 유지한다. TSL은 데이터 무결성을 제공하기 떄문에 데이터가 전송 중에 수정되거나 손상되는 것을 방지하고 사용자가 자신이 의도하는 웹사이트를 통신하고 입증하는 인증 기능도 제공하고 있다.

 

 

 

HTTPS 설정하고 인증하는 방법

 

 서버 측 설정

 

각각 운영하는 서버 엔진에 따라서 설정 방법이 많이 다르지만 기본적으로 HTTPS는 443 포트를 통해 통신을 진행한다. 따라서 서버 측에서 코드를 통해 HTTP 통식 방식은 80번 포트를 막고 443 포트를 열어 주어야 한다. 또는 80번 포트를 열어두지만 80 → 443으로 리디렉션시켜 최종적으로 443 포트에서 통신이 이루어지게 만들어야 한다

 

 SSL(TLS) 인증서 구매

 

위 문단을 통해 서버단 443 포트를 오픈했다면 HTTPS 통신을 할 수 있다.

하지만 SSL 인증서가 없기 때문에 신뢰할 수 없는 홈페이지라는 알림이 발생할 것이다.

이 문제를 해결하기 위해서 신뢰할 수 있는 SSL 인증서 판매 기관에 매년 일정 금액을 지불하고

SSL 인증서를 구매해야 하는데 무료로 사용할 수 있는 방법들도 있다고 한다.

구글이나 네이버에 SSL 인증서 구매를 검색하면 여러 사이트가 SSL 인증서를 판매하고 있으며,

조건에 부합하는 SSL 인증서 판매 사이트를 찾은 후 구매를 신청하면 SSL 인증서를 발급받을 수 있다.

SSL 인증서를 발급받으면 3개의 파일이 주어지는데, 각 파일은 csr 키, 비밀키, 인증키로 서버 정도가 담긴 키와 인증서를 발급해 준 신뢰 기관 정보 키들로 구성된다. 이 파일들을 운영하는 서버 환경에 맞게 업로드하고 적용시켜야 HTTPS 통신을 오류 창 없이 완벽하게 진행할 수 있다.

반응형