HTTPS 원리와 동작 방식

eunbi·2025년 2월 2일

CS 총정리

목록 보기
19/22

웹사이트의 보안이 중요해지면서 HTTPS(HTTP Secure)는 필수적인 요소가 되었다.

HTTPS는 HTTP에 보안 계층(SSL/TLS)을 추가한 프로토콜로, 데이터를 암호화하여 안전하게 전송한다.

이번 글에서는 HTTPS의 동작 원리와 보안 기능에 대해 설명한다.


1. HTTPS란?

📌 HTTPS(HyperText Transfer Protocol Secure)HTTP + TLS/SSL을 의미

  • 기존 HTTP는 데이터를 평문(Plain Text)으로 전송중간자 공격(Man-in-the-Middle, MITM)에 취약
  • *SSL(Secure Sockets Layer) / TLS(Transport Layer Security)을 적용하여 데이터를 암호화**
  • 이를 통해 도청(데이터 가로채기) 및 위·변조 방지

HTTPS를 사용하면?

✔️ 데이터 암호화 → 해커가 데이터를 가로채도 내용을 확인할 수 없음

✔️ 데이터 무결성 보장 → 전송 중 데이터가 조작되지 않음

✔️ 인증 기능 제공 → 신뢰할 수 있는 서버인지 확인 가능


2. HTTPS 동작 원리

HTTPS는 SSL/TLS 핸드셰이크(Handshake) 과정을 거쳐 안전한 연결을 설정한다.

HTTPS 통신 과정

1️⃣ 클라이언트(브라우저)서버에 HTTPS 요청을 보냄

2️⃣ 서버SSL/TLS 인증서(공개키 포함)를 클라이언트에 전송

3️⃣ 클라이언트는 인증서가 신뢰할 수 있는 CA(인증 기관)에서 발급되었는지 확인

4️⃣ 클라이언트는 서버의 공개키(Public Key)로 세션 키(대칭키)를 암호화하여 서버로 전송

5️⃣ 서버자신의 개인키(Private Key)로 세션 키를 복호화

6️⃣ 클라이언트와 서버가 세션 키를 공유 → 이후 대칭키 암호화를 사용하여 데이터 교환

💡 HTTPS 통신 과정 요약

  • 공개키(비대칭키) 암호화를 이용해 안전한 대칭키 교환
  • 이후 대칭키 암호화(AES 등)를 사용하여 데이터 암호화

3. SSL/TLS 인증서란?

📌 SSL/TLS 인증서서버의 신뢰성을 보장하는 디지털 문서

  • 인증서는 CA(인증 기관, Certificate Authority)가 발급
  • 사용자는 인증서를 통해 서버가 신뢰할 수 있는지 검증

SSL/TLS 인증서에 포함된 정보

✔️ 도메인 정보 (예: www.example.com)

✔️ 발급 기관 정보 (예: Let's Encrypt, DigiCert)

✔️ 공개키 (Public Key)

✔️ 인증서의 유효 기간

💡 인증서 검증 방식

1️⃣ 브라우저는 서버의 인증서가 신뢰할 수 있는 CA에서 발급되었는지 확인

2️⃣ 인증서의 서명을 검증하여 변조되지 않았는지 확인

3️⃣ 인증서가 만료되지 않았는지 확인


4. HTTPS의 주요 보안 기능

🔹 1) 데이터 암호화 (Encryption)

  • HTTPS는 TLS를 사용하여 데이터를 암호화
  • 해커가 데이터를 가로채더라도 내용을 해독할 수 없음
  • AES, ChaCha20 같은 대칭키 암호화 사용

🔹 2) 데이터 무결성 (Integrity)

  • 전송 중 데이터가 변경되지 않았는지 확인 가능
  • *HMAC(Hash-based Message Authentication Code)**으로 메시지 인증

🔹 3) 인증 (Authentication)

  • SSL/TLS 인증서를 통해 서버의 신뢰성을 검증
  • MITM 공격 방지 (악의적인 서버가 사용자를 속이지 못함)

5. HTTPS가 필요한 이유

📌 HTTPS는 보안뿐만 아니라 SEO(검색 엔진 최적화)에도 영향

브라우저 보안 경고

  • HTTPS를 사용하지 않으면 브라우저(Chrome, Firefox 등)에서 "안전하지 않음" 경고 표시
  • 사용자 신뢰도 하락

SEO(검색 순위) 향상

  • 구글은 HTTPS를 사용하는 웹사이트를 검색 순위에서 우선
  • HTTPS 적용은 SEO 최적화의 필수 요소

데이터 보호

  • 로그인, 결제 정보, 개인정보 등을 보호
  • 특히 전자상거래(쇼핑몰) 및 금융 서비스 웹사이트에서 필수

6. HTTPS 적용 방법

무료 SSL/TLS 인증서 사용 (Let's Encrypt)

  • 무료이면서 자동 갱신 지원
  • Certbot을 사용하여 간편하게 적용 가능

💡 Nginx에서 HTTPS 적용 예제

sudo certbot --nginx -d example.com -d www.example.com

✔️ Let's Encrypt의 무료 인증서 적용

Cloudflare SSL 사용

  • Cloudflare에서 무료 SSL/TLS 제공
  • 설정만으로 HTTPS 적용 가능

AWS, Azure, GCP 인증서 사용

  • AWS ACM(AWS Certificate Manager), GCP Managed SSL 등을 활용 가능

🔹 결론

HTTPS는 웹 보안을 강화하고, SEO와 사용자 신뢰도를 높이는 필수 요소이다.

✔️ HTTP와 달리 HTTPS는 SSL/TLS를 사용해 데이터를 암호화

✔️ 공개키 암호화 + 대칭키 암호화를 조합하여 안전한 통신 제공

✔️ 인증서를 통해 서버의 신뢰성을 검증

✔️ SEO 최적화와 브라우저 보안 강화에도 긍정적인 영향

0개의 댓글