10-2. HTTPS (인증서)

박은서's avatar
Feb 06, 2026
10-2. HTTPS (인증서)

1. HTTPS (HTTP + SSL/TLS)

0️⃣ 필기

notion image

1️⃣ HTTPS의 목적

  • 기밀성: 데이터 도청 방지
  • 무결성: 데이터 위·변조 방지
  • 인증: 서버가 진짜인지 확인
➡️ 이를 위해 암호화 + 인증서 + CA를 사용

2️⃣ 등장 요소 정리

1) 브라우저 (Client)

  • 서버에 접속하려는 사용자
  • CA 공개키 목록을 이미 내장하고 있음 (중요)

2) 서버 (예: Naver, 443 포트)

  • 비밀키(S 개인키): 외부에 절대 공개 ❌
  • 공개키(S 공개키): 인증서를 통해 배포

3) CA 기관 (Certificate Authority)

  • 완전히 신뢰 가능한 제3자
  • 서버의 공개키가 진짜인지 서명(Sign) 해줌

3️⃣ HTTPS 인증서 구조 (그림 기준)

인증서 안에 들어있는 것:
  • 서버의 공개키 (S 공개키)
  • 도메인 정보 (naver.com)
  • CA 정보
  • CA의 개인키로 만든 서명
➡️ 인증서 자체는 암호화가 아니라 서명된 문서

4️⃣ HTTPS 동작 흐름 (필기 기준)

① 서버 → 브라우저

“내 공개키(S 공개키)야!” + 인증서 전송

② 브라우저 → CA

“이 공개키 진짜야?”
  • 브라우저는 인증서에 있는 CA 서명
  • 자기가 이미 알고 있는 CA 공개키로 검증

③ CA → 브라우저

“맞아. 이 공개키는 naver.com 거야”
✔️ CA 서명 검증 성공
✔️ 도메인 일치 확인

④ 브라우저

  • 서버의 공개키(S 공개키)를 신뢰함
  • 이제 안전한 통신 준비 완료

⑤ 브라우저 → 서버

대칭키(BN 등)를 S 공개키로 암호화해서 전송
S 공개키로 암호화 → 서버만 S 개인키로 복호화 가능
➡️ 이후 실제 데이터(body)는 대칭키로 암호화해서 통신

5️⃣ ⭐ 필기에는 없지만 반드시 알아야 할 핵심 개념

1) ✅ 공개키 암호는 “인증 + 키 교환” 용도

  • 공개키 암호는 느림
  • 그래서 실제 데이터는 ❌ 공개키 암호 사용 안 함
  • 대칭키를 안전하게 전달하기 위한 용도
👉 실제 통신 = 대칭키 암호

2) ✅ HTTPS = SSL ❌ → TLS ⭕

  • 현재는 TLS (Transport Layer Security) 사용
  • “SSL”은 옛날 용어 (관습적으로 아직 사용)

3) ✅ CA는 하나가 아니다 (인증서 체인)

  • Root CA
  • Intermediate CA
  • Server Certificate
👉 브라우저는 Root CA만 신뢰
👉 체인을 따라가며 신뢰 검증

4) ✅ HTTPS가 보장하지 않는 것

  • 서버 내부 보안 ❌
  • 악성 서버 여부 ❌
  • 데이터가 “선한 내용인지” ❌
👉 통신 과정만 안전

5) ✅ HTTPS(443) vs HTTP(80)

구분
HTTP
HTTPS
암호화
인증
포트
80
443
MITM 공격
취약
방어

6️⃣ 한 줄 요약 (시험용)

HTTPS는 CA가 보증한 서버 공개키를 이용해 대칭키를 안전하게 교환하고, 이후 대칭키로 통신하는 보안 프로토콜이다.
Share article