Let's Encrypt SSL 자동화
Certbot 설치, Let's Encrypt 인증서 발급, 자동 갱신 설정, 와일드카드 인증서, SSL 문제 해결을 배웁니다.
SSL/TLS와 HTTPS의 이해
왜 SSL이 필수인가?
SSL(Secure Sockets Layer)/TLS(Transport Layer Security)는 웹 서버와 브라우저 간의 통신을 암호화하는 프로토콜입니다. SSL 인증서가 설치된 사이트는 https://로 접속되며, 브라우저 주소창에 자물쇠 아이콘이 표시됩니다.
1. 보안 - 로그인 정보, 결제 정보, 개인 데이터가 암호화됩니다. HTTP는 모든 데이터가 평문으로 전송되어 중간자 공격(Man-in-the-Middle)에 취약합니다. 특히 공용 Wi-Fi 환경에서 HTTP 사이트의 데이터는 쉽게 도청됩니다.
2. SEO - Google은 2014년부터 HTTPS를 검색 순위 요소로 사용합니다. HTTPS가 아닌 사이트는 순위에서 불이익을 받으며, 특히 2018년 이후 Chrome이 HTTP 사이트에 "안전하지 않음" 경고를 표시하면서 HTTPS는 사실상 필수가 되었습니다.
3. 신뢰도 - Chrome, Firefox, Safari 등 주요 브라우저는 HTTP 사이트에 "안전하지 않음" 경고를 표시합니다. 이 경고는 방문자의 이탈률을 크게 높입니다. 특히 이커머스 사이트에서는 결제 전환율에 직접적인 영향을 미칩니다.
4. 기능 - HTTP/2, HTTP/3, Service Worker, Geolocation API, Web Push 알림, WebRTC 등 최신 웹 기술은 HTTPS에서만 작동합니다. PWA(Progressive Web App)도 HTTPS가 필수 조건입니다.
5. 법적 요구 - 개인정보보호법, GDPR 등에 따라 개인정보를 수집하는 사이트는 암호화 통신이 법적으로 요구됩니다. 한국의 정보통신망법에서도 개인정보 전송 시 암호화를 의무화하고 있습니다.
SSL 인증서의 종류
SSL 인증서는 검증 수준에 따라 3가지로 분류됩니다:
DV (Domain Validation) - 도메인 소유권만 확인. 가장 빠르고 저렴하며, Let's Encrypt가 이 유형입니다. 대부분의 웹사이트에 충분합니다.
OV (Organization Validation) - 조직 실체 확인. 기업 사이트에 적합하며, 발급에 며칠이 걸립니다. 연간 수십~수백 달러.
EV (Extended Validation) - 최고 수준 검증. 과거에는 주소창이 녹색으로 표시되었지만, 현재 브라우저들은 이를 폐지했습니다. 연간 수백 달러 이상.
실무적으로 Let's Encrypt의 DV 인증서만으로 대부분의 사이트에서 충분합니다. 암호화 수준은 유료 인증서와 동일하며(256비트 AES), 차이는 인증서에 조직 정보가 포함되는지 여부뿐입니다.
HTTPS 요청
인증서 검증
암호화 시작
데이터 보호
Certbot 설치
# ===============================================
# Certbot 설치 가이드 (OS별)
# ===============================================
# ===== AlmaLinux / Rocky Linux / CentOS 9 =====
# EPEL 리포지토리 설치 (아직 안 했다면)
dnf install epel-release -y
# Certbot 및 웹서버 플러그인 설치
# Nginx 사용 시:
dnf install certbot python3-certbot-nginx -y
# Apache 사용 시:
dnf install certbot python3-certbot-apache -y
# ===== Ubuntu / Debian =====
# 패키지 업데이트
apt update
# Certbot 설치 (Nginx)
apt install certbot python3-certbot-nginx -y
# Certbot 설치 (Apache)
apt install certbot python3-certbot-apache -y
# ===== Snap을 통한 설치 (모든 배포판, 최신 버전) =====
# Snap은 항상 최신 Certbot을 제공합니다
# Snap 설치 (CentOS/AlmaLinux)
dnf install snapd -y
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap
# 기존 certbot 제거 (충돌 방지)
dnf remove certbot 2>/dev/null
apt remove certbot 2>/dev/null
# Snap으로 Certbot 설치
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
# ===== 설치 확인 =====
certbot --version
# certbot 2.9.x
# 플러그인 목록 확인
certbot plugins
# * nginx
# Description: Nginx Web Server plugin
# * standalone
# Description: Spin up a temporary webserver
# * webroot
# Description: Place files in webroot directory
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.