Let’s Encrypt를 활용한 Nginx 무료 SSL/TLS 인증서 발급 및 자동 갱신 설정

    구글은 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 메시지가 뜨면 정상 완성입니다.

    답글 남기기

    이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다