HTTP"S"란 무엇이며, 왜 사용하는가?

이건우·2025년 3월 26일

웹 프로그래밍

목록 보기
33/43

HTTPS란?

HTTPS (HyperText Transfer Protocol Secure)
HTTP + TLS(SSL)을 이용해 암호화된 통신을 제공하는 프로토콜입니다.

즉, 기존 HTTP에 보안 기능이 추가된 버전입니다.

HTTPS가 필요한 이유

HTTP는 요청과 응답을 평문(Plain text)으로 주고받습니다.

때문에 중간에서 데이터를 훔치면 누구나 확인 할 수 있습니다.

(로그인 정보, 카드 번호 등이 유출될 수 있음)

예)

HTTP → 중간 공격자가 ID/PW 훔쳐서 확인 가능!

HTTPS → 데이터가 암호화되어 읽을 수 없음!

HTTPS 동작 방식

1. 인증서 교환

사용자가 서버에 접속을 요청하면,

서버브라우저에게 자기 신분을 증명하는 SSL/TLS 인증서를 보냅니다.

여기에는 서버 공개키(Public Key), 도메인 정보, 인증기관(CA)의 서명 ,유효기간 등

정보가 들어있으며, 해당 인증서가 유효한지 클라이언트가 확인합니다.

2. 암호화 키 교환 (Handshake)

  1. 클라이언트가 대칭키(세션 키) 생성.

  2. 클라이언트가 서버한테서 제공받은 공개키로 세션키를 암호화하여 서버에 전송.

  3. 서버는 가지고 있던 공개 키로 세션키를 복호화하여 클라이언트와 같은
    세션키를 가지게 됨

  4. 앞으로 클라이언트와 서버는 같은 세션키를 가지고 있으므로 해당
    세션키를 가지고 서로 데이터를 암/복호화 하여 통신하게 됨

++ 결국 이 과정은 세션키를 서버에 안전하게 전달하기 위한 과정인 것입니다!

3. 데이터 통신

이후 데이터를 세션 키를 사용해 대칭 암호화로 빠르게 통신

HTTPS 적용 방법 (요약됨)

  1. 도메인 구매

  2. SSL 인증서 발급 (Let’s Encrypt 무료 가능)

  3. 웹 서버(Nginx 등)에 SSL 인증서 설정

  4. HTTPS 리디렉션 적용 (HTTP 접속도 HTTPS로 강제)

http 와 https의 차이점과 https의 통신 방법에 대해서 알아 보았습니다.
확실히 https의 사용은 필수가 아니라 의무라는 생각이 드네요!

profile
새싹개발자

0개의 댓글