구글은 HTTPS가 적용되지 않은 사이트에 대해 검색 노출 불이익을 줄 뿐만 아니라, 사용자에게 “보안되지 않음” 경고를 노출합니다.
본 문서에서는 Certbot 오픈소스 도구를 사용하여 Nginx에 무료 Let’s Encrypt SSL/TLS 인증서를 적용하고 90일 마다의 자동 갱신을 세팅하는 가이드를 안내합니다.
1. 사전 준비 사항
- 도메인 구매 및 DNS A 레코드가 서버의 공인 IP로 정상 연결되어 있어야 함
- Nginx 방화벽에서 HTTP(80) 및 HTTPS(443) 포트가 허용되어 있어야 함
2. 단계별 인증서 발급 절차
[1단계] Certbot 및 Nginx 플러그인 설치
Bash
# Ubuntu / Debian
sudo apt update
sudo apt install -y certbot python3-certbot-nginx
# CentOS / RHEL (EPEL 리포지토리 필요)
sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-nginx
[2단계] Nginx Server Block 도메인 명시 점검
Certbot이 설정 파일을 읽을 수 있도록 /etc/nginx/sites-available/default 파일 내에 server_name이 정확해야 합니다.
Nginx
server {
listen 80;
server_name example.com www.example.com;
}
[3단계] Certbot 실행 및 자동 SSL 세팅
아래 명령어를 실행하면 Certbot이 Nginx 설정을 자동으로 분석하고, Let’s Encrypt 인증서를 발급받아 HTTPS 리다이렉션까지 한 번에 구성해 줍니다.
Bash
sudo certbot --nginx -d example.com -d www.example.com
(실행 중 이메일 입력 및 이용약관 동의 절차 진행)
[4단계] SSL 자동 갱신(Auto Renewal) 검증
Let’s Encrypt 인증서는 유효기간이 90일입니다. Certbot은 자동으로 cron/systemd timer를 등록하므로 아래 명령어로 자동 갱신 시뮬레이션 테스트를 수행합니다.
Bash
sudo certbot renew --dry-run
Congratulations, all simulated renewals succeeded 메시지가 뜨면 정상 완성입니다.