콘텐츠로 건너뛰기
Home » 검색엔진 최적화 » HTTP, HTTPS의 차이점 및 전환의 중요성

HTTP, HTTPS의 차이점 및 전환의 중요성

http https 차이점

이번 게시글을 통해 HTTP와 HTTPS의 정의와 차이점에 대해서 알아보고 HTTPS로 전환의 중요성에 대해서 알아보겠습니다.


목차


HTTP와 HTTPS

HTTP란?

HTTP(HyperText Transfer Protocol)는 HTML 문서를 주고 받는 통신 규약입니다.

우리가 인터넷에 접속하여 TBWA 홈페이지에 방문하면 사용자의 PC(클라이언트)와 TBWA 홈페이지(서버)가 통신을 하면서 자료를 주고 받습니다. 이때 서버측은 클라이언트에게 홈페이지의 메인화면과 같은 HTML 자료를 전송하는데 그때 HTTP 통신 규약을 사용합니다.

HTTP 규약을 사용하여 통신을 수행하면 홈페이지 URL 앞에 http:// 값이 등장합니다.

http

위 사진을 보면 http://로 주소가 시작하는 것을 확인하실 수 있습니다. 이 경우 클라언트와 서버 사이에 HTTP 통신을 사용해서 데이터를 주고 받는다는 것을 알 수 있습니다.

HTTP 기술은 우리의 인터넷 생활을 편리하게 만들어 줍니다. 하지만 기술이 발전함에 따라 많은 해킹 방법들이 발견되고 HTTP에서 보안적 취약점이 발생합니다. 단순하게 서버와 공개적인 정보를 주고 받기 위해서는 HTTP 통신도 아무 문제가 없지만 은행 거래나 아주 중요한 비밀번호를 주고 받을 경우 해커에 의해 정보가 노출되기 쉽다고 합니다.

이러한 HTTP의 보안 취약점을 해결하기 위해 HTTPS가 등장하게 됩니다. 아래 HTTPS란? 에서 HTTPS에 대한 자세한 내용을 알아보도록 하겠습니다.

HTTPS란?

HTTPS(HyperText Transfer Protocol Secure)

위에서 언급한 HTTP의 보안적 문제로 HTTPS가 등장하게 됩니다. HTTP와 HTTPS를 통해 각각 통신을 수행하면 동일한 결과값을 받을 수 있습니다. 하지만 통신하는 과정에서 HTTPS는 전송 내용을 암호화 시킵니다. 암호화의 장점은 발신자와 수신자를 제외한 중간 매개체에서 통신 내용을 확인할 수 없는것 입니다. 따라서 발신자에서 전송한 암호 및 기밀 문서를 보호할 수 있습니다.

https

HTTPS 규약을 사용하여 통신을 수행하면 홈페이지 URL 앞에 https:// 값이 등장합니다.

이제 HTTP와 HTTPS의 차이점에 대해서 아래에서 알아보겠습니다.

HTTP와 HTTPS의 차이점

HTTPS 문단에서 간략하게 설명한것 처럼 HTTP를 암호화하여 전송하면 HTTPS라고 생각하면 되겠습니다. 그럼 암호화는 어떻게 진행하는지 알아보겠습니다.

HTTPS를 웹 상에 검색하면 SSL이라는 연관 검색어를 보실 수 있습니다. SSL(TLS)는 HTTPS의 암호화 방식입니다.

즉 SSL(TLS) 인증을 통해 HTTPS 암호화를 진행하고 발신자와 수신자만 해당 암호를 해독하여 정보를 주고 받을 수 있습니다. 암호화를 위한 SSL은 인증서인데 SSL로 널리 알려져 있지만 SSL은 과거 버전이며 현재 버전은 TLS 입니다. 아래에서 SSL(TLS)에 대해서 알아보겠습니다.

SSL(TLS)

HTTPS 암호화를 책임지는 SSL 인증서는 다음과 같이 동작합니다. 기존의 HTTP는 클라이언트 <-> 서버 통신을 진행할때 두 당사자만 믿고 통신을 하게 됩니다. 하지만 HTTPS는 제 3자가 등장합니다. 즉 신뢰할 수 있는 다른 기관이 존재하고 해당 기관이 서버 또는 클라이언트에 SSL 인증서를 발급하여 해당 당사자를 보증하는 방법입니다.

위 방법을 통해 우리는 접속할 사이트가 진짜 은행 사이트인지 가짜 은행 사이트인지 SSL 인증서를 통해 신뢰할 수 있게 됩니다. 그 후 신뢰된 당사자간 암호화된 통신을 진행하면 외부에서는 어떤 내용으로 통신하는지 알 수 없습니다.


웹사이트 HTTPS 전환의 중요성

HTTPS의 표준화

위에서 살펴본 바와 같이 HTTPS는 HTTP의 후속 모델입니다. 따라서 HTTP를 사용할지 HTTPS를 사용할지 결정하기 보단 무조건 보안을 위해 HTTPS를 사용해야 합니다. 추가로 2021년 부터 대부분의 브라우저는 HTTP로 통신을 하는 웹사이트에서 경고 문구를 발생 시킵니다. 이 때문에 HTTP 통신을 사용해서 사이트에 방문하게 되면 경고 문구 때문에 바로 진입하지 못하게 됩니다.

즉 시대가 흐름에 따라 점점 HTTPS가 표준화로 자리잡고 있습니다.

웹사이트 HTTPS 전환 이유 정리

  • 사업자로서 고객의 정보 보호를 보호해야 합니다.
  • 사이트 진입시 HTTP 경고 문구가 발생하면 클라이언트가 접근을 꺼리기 때문에 유입이 낮아질 수 있습니다.
  • HTTPS 통신 웹사이트가 아닐 경우 검색 결과 노출에서 후순위로 밀릴 수 있습니다.

웹사이트 HTTPS 설정 방법

개념적으로 다소 어려운 내용이 존재합니다. HTTPS가 아닌 웹사이트를 HTTPS 통신으로 전환하기 위해서는 약간의 개발적 지식이 필요하기 때문에 운영 위탁한 외주 업체나 호스팅서버에 문의하시는 것을 추천드립니다.

서버측 설정

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

간략하게 Node.js 기반 Express 프레임워크 서버를 사용하는 서버 엔진에서 443 포트를 오픈한 코드입니다.

const https = require('https');
const fs = require('fs');
const express = require('express');

const privatekey = fs.readFileSync(__dirname + '/sslkey/private.pem', 'utf8');
const certkey = fs.readFileSync(__dirname + '/sslkey/cert.pem', 'utf8');
const csrkey = fs.readFileSync(__dirname + '/sslkey/csr.pem', 'utf8');

const sslkey = {
        key: privatekey,
        cert: certkey,
        ca: csrkey
};

const app443 = express();
const httpsServer = https.createServer(sslkey, app443);

httpsServer.listen(443, ()=>{
                logger.info(`server start : 443 port`);
        }
);

Django, JSP등 각각 서버단에서 코드 수정을 통해 443포트로 통신을 하셔야 HTTPS를 시작하실 수 있습니다.

SSL(TLS) 인증서 구매

위 문단을 통해 서버단 443 포트를 오픈하셨으면 HTTPS 통신을 하실 수 있습니다. 하지만 SSL 인증서가 없기 때문에 신뢰할 수 없는 홈페이지라는 알림이 발생합니다. 이 문제를 해결하기 위해서 신뢰할 수 있는 SSL 인증서 판매 기관에 매년 일정 금액을 지불하고 SSL 인증서를 구매하셔야 합니다.

구글이나 네이버에 SSL 인증서 구매를 검색하시면 여러 사이트가 SSL 인증서를 판매하고 있습니다. (이번 게시글에서는 SSL 인증서 판매사이트 홍보 목적이 아니기 때문에 자세한 상호나 URL은 생략하도록 하겠습니다.) 조건에 부합하는 SSL 인증서 판매 사이트를 찾으신 후 구매를 신청하시면 SSL 인증서를 발급 받을 수 있습니다.

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

간략하게 HTTPS 통신 설정 및 SSL 적용 방법에 대해서 알려드렸습니다. 사용자에 따라 서버 환경이 천차만별이고 적용하는 방법도 아주 복잡하기 때문에 실제로 적용을 원하시는 분은 전문 업체나 호스팅서버에 문의하시길 바랍니다.


이번 게시글을 통해 HTTP와 HTTPS의 정의와 차이점에 대해서 알아보고 HTTPS로 설정해야하는 이유에 대해서 알아보았습니다. 소유하신 웹사이트에 SEO (검색엔진최적화) 작업을 진행하시고 싶은 분은 아래 SEO 컨설팅 서비스 알아보기를 방문해 주시면 감사하겠습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다