KAKAO.GG
백엔드

EC2 HTTPS 설정하는 방법

GG
2025. 6. 20.
조회 28
#EC2 HTTPS 적용 방법#무료 SSL 인증서#AWS 보안 설정

HTTP는 데이터를 암호화하지 않기 때문에 보안에 취약합니다.
특히 로그인, 결제, 개인정보 입력 등 민감한 데이터를 다룰 경우 반드시 HTTPS(SSL/TLS 암호화) 를 적용해야 합니다.

AWS EC2에서 운영 중인 서버에 HTTPS를 적용하는 방법은 크게 3가지로 나뉩니다.

 

  • ACM (AWS Certificate Manager)

  • Let's Encrypt (무료 인증서 발급)

  • Cloudflare (역방향 프록시 + SSL)

 

AWS ACM (Certificate Manager)

항목

설명

인증서 발급

AWS에서 무료 발급

갱신 주기

자동 갱신

적용 대상

ALB, CloudFront, API Gateway 등

직접 EC2 연결

❌ 직접 EC2에는 적용 불가, 로드밸런서 필요

 
 

적용 흐름

  1. ACM에서 도메인 인증서를 발급

  2. 인증서는 Application Load Balancer (ALB) 와 연결

  3. ALB에서 HTTPS 종단 → EC2는 HTTP로 내부 통신

 

Let's Encrypt + Nginx

가장 실용적인 방법입니다.
Let's Encrypt는 무료 SSL 인증서를 발급해주며, certbot이라는 툴로 쉽게 설치 및 갱신이 가능합니다.

항목

설명

인증서 발급

무료 (Let's Encrypt)

갱신 주기

90일, 자동 갱신 가능

직접 EC2에 설치 가능

✅ 가능

필요한 도구

Nginx, Certbot

적용 흐름

  • EC2 인스턴스에 Nginx 설치
sudo apt update sudo apt install nginx
 
  • Certbot 설치
sudo apt install certbot python3-certbot-nginx 
  • 인증서 발급 및 자동 설정
sudo certbot --nginx -d example.com -d www.example.com
  • 갱신 테스트
sudo certbot renew --dry-run 

 

Cloudflare로 HTTPS 설정 (무료 + 빠름)

Cloudflare는 DNS 관리뿐 아니라 SSL 프록시 기능도 제공합니다.
웹사이트 앞단에 Cloudflare를 역방향 프록시로 세우면, SSL 인증서를 자동 제공받을 수 있습니다.

항목

설명

인증서 발급

자동 (Cloudflare에서 무료로 제공)

EC2에 SSL 설치 필요

❌ 없음 (Cloudflare가 SSL 처리)

성능

CDN + 보안 + 캐싱 포함

추가 설정

DNS는 Cloudflare에서 관리 필요

적용 흐름

  1. Cloudflare 계정 생성 후 도메인 등록

  2. DNS에서 A레코드를 EC2 Elastic IP로 설정

  3. SSL/TLS 설정 → “Flexible” or “Full” 모드 선택

  4. 필요시, origin 인증서 발급하여 EC2에 설치

Flexible: Cloudflare ↔ 사용자 간 HTTPS
Full: Cloudflare ↔ 사용자 / Cloudflare ↔ EC2 모두 HTTPS

개인 프로젝트나 API 서버, 블로그에는 Cloudflare 방식이 매우 유리

 

  • 빠르게 무료로 HTTPS만 적용하고 싶다 → Let's Encrypt

  • CDN과 함께 속도, 보안도 챙기고 싶다 → Cloudflare

  • 기업 서비스, ALB 환경에서 운영 → ACM