어느 날 갑자기 사이트에 접속하니 브라우저가 "이 사이트는 안전하지 않습니다" 라는 빨간 경고창을 보여준다면? SSL 인증서가 만료된 것입니다. 이 경고창은 방문자가 직접 우회해야 들어올 수 있어서, 대부분의 사람들이 그냥 떠나버립니다. 실제로 SSL 만료로 인한 매출 손실은 수십에서 수백만 원에 달할 수 있습니다.
SSL(Secure Sockets Layer) 인증서는 웹사이트와 방문자 사이의 데이터를 암호화하는 디지털 증명서입니다. 주소창의 자물쇠 아이콘이 바로 SSL이 작동 중이라는 표시입니다.
인증서에는 유효 기간이 있습니다. Let's Encrypt 무료 인증서는 90일, 유료 인증서는 보통 1~2년입니다. 유효 기간이 지나면 브라우저가 자동으로 경고를 표시합니다.
가장 쉬운 방법은 CyberShield 무료 스캔을 이용하는 것입니다. 도메인을 입력하면 SSL 만료 일자, 발급 기관, TLS 버전까지 한 번에 확인할 수 있습니다.
도메인 입력 → 30초 → SSL 점수 + 만료일 + 설정 문제까지
Let's Encrypt는 Mozilla 재단이 만든 무료 SSL 인증 기관입니다. 90일마다 자동 갱신되도록 설정하면 더 이상 만료 걱정이 없습니다.
# Certbot 설치 (Ubuntu/Debian)
sudo apt install certbot python3-certbot-nginx
# 인증서 발급 + Nginx 자동 설정
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
# 자동 갱신 테스트
sudo certbot renew --dry-run
# cron으로 자동 갱신 (2일마다 확인)
echo "0 12 */2 * * root certbot renew --quiet" | sudo tee /etc/cron.d/certbot
sudo certbot certificates 명령어로 인증서 목록과 만료일을 확인할 수 있습니다.
Cloudflare는 SSL 갱신을 자동으로 처리하며, CDN·DDoS 방어도 무료로 제공합니다.
Vercel, Netlify, Railway 등 최신 호스팅 플랫폼은 SSL을 자동으로 발급하고 갱신합니다. 별도 설정이 필요 없습니다.
SSL 인증서가 있어도 HTTP로 접속하면 암호화가 없습니다. HSTS(HTTP Strict Transport Security)를 설정하면 브라우저가 항상 HTTPS로만 접속합니다.
# Nginx 설정에 추가
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# Apache 설정에 추가
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
certbot renew --dry-run)DMARC, 오픈 포트, 악성코드까지 — 30초 무료 전체 검사
관련 글: 이메일 스푸핑 방지 — SPF·DKIM·DMARC 설정 가이드 · AI 생성 코드의 7가지 보안 취약점