HTTPS(HTTP Secure)는 HTTP에 TLS(Transport Layer Security)를 적용하여 통신을 암호화한 프로토콜입니다.
HTTP는 데이터를 평문으로 전송하므로 중간자가 내용을 그대로 볼 수 있습니다. HTTPS는 TLS로 암호화하여 도청, 변조, 위장을 방지합니다.
HTTP → 포트 80, 평문 전송
HTTPS → 포트 443, 암호화 전송
TLS가 데이터를 암호화하여 네트워크를 가로채도 내용을 알 수 없습니다.
MAC(Message Authentication Code)으로 데이터가 전송 중에 수정되었는지 확인합니다.
서버의 SSL/TLS 인증서를 검증하여 접속한 서버가 진짜인지 확인합니다. 피싱 사이트를 방지합니다.
1. 클라이언트 → 서버: ClientHello (지원하는 암호화 방식 목록 전송)
2. 서버 → 클라이언트: ServerHello + 인증서 전송
3. 클라이언트: 인증서의 CA 서명 검증
4. 키 교환: 세션 키 협상 (TLS 1.3에서는 1-RTT)
5. 이후 통신은 세션 키로 암호화
브라우저는 운영체제에 설치된 신뢰할 수 있는 CA 목록을 보유합니다. 인증서의 서명이 이 CA 중 하나와 일치하면 신뢰합니다.
| 종류 | 설명 |
|---|---|
| DV (Domain Validation) | 도메인 소유권만 확인, 가장 빠르고 저렴 |
| OV (Organization Validation) | 도메인 + 조직 실재 확인 |
| EV (Extended Validation) | 엄격한 조직 검증, 브라우저 주소창에 회사명 표시 |
무료 인증서 발급 기관으로, 자동 갱신을 지원합니다. 현재 대부분의 개인 사이트와 소규모 서비스가 Let's Encrypt 인증서를 사용합니다.
Strict-Transport-Security: max-age=31536000; includeSubDomains
HTTP로 접속 시 자동으로 HTTPS로 리다이렉트합니다. 첫 접속 시 HTTP 다운그레이드 공격을 방지합니다.