모든 SSL 문서 SSL 및 인증서

2026년 SSL/TLS 모범 사례

SSL/TLS 설정은 크게 변화했습니다. 이 글은 2026년 기준 모범 사례의 현재 상태를 정리합니다 — 무엇을 활성화하고, 무엇을 비활성화하며, 앞으로 무엇이 달라지는지 알아보세요.

프로토콜 버전

프로토콜상태조치
SSL 2.0, 3.0취약비활성화 — 심각한 취약점 (POODLE, DROWN)
TLS 1.0지원 중단 (2021)비활성화 — BEAST 취약점
TLS 1.1지원 중단 (2021)비활성화 — 최신 암호화 스위트 미지원
TLS 1.2안전활성화 — AEAD 암호화만 사용
TLS 1.3현재 표준활성화 — 가장 빠르고 안전

Nginx: ssl_protocols TLSv1.2 TLSv1.3; Apache: SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

암호화 스위트

TLS 1.3 (설정 불필요)

5개의 암호화 스위트 모두 안전합니다. 커스터마이징하지 마세요 — 더 좋게 만들 수 없습니다.

TLS 1.2 (AEAD만 허용)

# Nginx
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers off;

규칙:

  • ECDHE-* 스위트만 사용 — 순방향 비밀성 보장
  • *-GCM-* 또는 *-CHACHA20-*만 사용 — AEAD 암호화만 허용
  • CBC 암호화 제외 — BEAST, Lucky13 취약점
  • ssl_prefer_server_ciphers off — 클라이언트가 선택하도록 허용 (최신 클라이언트가 최적의 옵션을 선택)

인증서 관리

사례이유
ECDSA P-256 키 사용RSA 2048보다 작고 빠름
갱신 자동화2029년까지 47일 유효 기간으로 수동 갱신 비현실적
fullchain.pem 제공인증서 체인 오류 방지
인증서 만료 모니터링90일 중 60일에 알림 설정
인증서 투명성 모니터링 사용무단 인증서 감지
갱신 시 키 교체인증서 간에 개인키를 재사용하지 않기

보안 헤더

# HSTS — 항상 HTTPS 사용 (짧은 max-age로 시작, 이후 증가)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

# MIME 타입 스니핑 방지
add_header X-Content-Type-Options "nosniff" always;

# 클릭재킹 방지
add_header X-Frame-Options "SAMEORIGIN" always;

# 안전하지 않은 하위 리소스 업그레이드
add_header Content-Security-Policy "upgrade-insecure-requests" always;

HSTS 심층 분석 →

성능 최적화

설정구성효과
HTTP/2listen 443 ssl http2;멀티플렉싱, 헤더 압축
세션 캐싱ssl_session_cache shared:SSL:10m;재방문자의 재핸드셰이크 방지
세션 티켓 비활성화ssl_session_tickets off;더 나은 순방향 비밀성
OCSP 스테이플링ssl_stapling on;더 빠른 인증서 검증, 더 나은 프라이버시
조기 데이터 (0-RTT)TLS 1.3 기본값제로 레이턴시 재개 (주의해서 사용)

완전한 Nginx 설정 (프로덕션용)

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers off;

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;

    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    root /var/www/html;
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

테스트: SSL Labs에 도메인을 입력하세요 — 이 설정이면 A+ 등급을 받을 수 있습니다.

하지 말아야 할 것

잘못된 사례이유대신 해야 할 것
ssl_protocols TLSv1 TLSv1.1;지원 중단, 취약TLS 1.2 + 1.3만 사용
ssl_ciphers ALL;약한 암호화 포함명시적 ECDHE + AEAD 목록
ssl_prefer_server_ciphers on; (TLS 1.3)불필요 — TLS 1.3 암호화는 모두 안전off
cert.pem 대신 fullchain.pem 미사용체인 누락 → 신뢰 오류Nginx에서는 항상 fullchain.pem
프로덕션에서 자체 서명 인증서 사용브라우저 경고, 신뢰 없음Let’s Encrypt (무료)
동일한 개인키를 수년간 사용피해 범위 제한 불가갱신 시마다 교체
HSTS 미사용다운그레이드 공격에 취약테스트 후 활성화
HSTS에 max-age=0사실상 HSTS 비활성화300에서 시작하여 63072000으로 증가

자주 묻는 질문

SSL 설정을 어떻게 테스트하나요?

SSL Labs Server Test — 도메인을 입력하면 A-F 등급이 포함된 상세 보고서를 받을 수 있습니다. 프로토콜 지원, 암호화 강도, 체인 유효성, 알려진 취약점을 확인하세요.

어떤 등급을 목표로 해야 하나요?

프로덕션 사이트는 A+. 이를 위해 필요한 것: TLS 1.2+ 전용, AEAD 암호화, 유효한 체인, 긴 max-age의 HSTS. 위의 설정으로 A+를 달성할 수 있습니다.

SSL 설정을 얼마나 자주 검토해야 하나요?

매년, 또는 새로운 취약점이 발표될 때. Let’s Encrypt 상태 페이지를 구독하고 Mozilla SSL 설정 생성기에서 최신 권장 사항을 확인하세요.

올바른 설정을 자동 생성하는 도구가 있나요?

네 — Mozilla SSL 설정 생성기. 서버(Nginx, Apache 등)와 서버 버전을 선택하면 권장 설정을 생성합니다. “Modern” 프로필이 이 글의 사례와 일치합니다.

관련 기사

SSL 및 인증서 2026-05-08
TLS 1.3이란? 변경된 모든 것
TLS 1.3은 현재 암호화 표준입니다 - 더 빠른 핸드셰이크, 필수 순방향 비밀성, 레거시 알고리즘 없음. TLS 1.2에서 변경된 점, 활성화 방법, 강제 적용 여부를 알아보세요.
SSL 및 인증서 2026-05-08
순방향 비밀성(Perfect Forward Secrecy)이란?
순방향 비밀성은 모든 TLS 연결이 고유한 키를 사용한다는 것을 의미합니다. 서버의 개인키가 침해되어도 과거 대화를 복호화할 수 없습니다. 작동 원리와 활성화 확인 방법을 알아보세요.
SSL 및 인증서 2026-05-08
HSTS: HTTP Strict Transport Security 설명
HSTS는 브라우저가 항상 HTTPS를 사용하도록 지시하는 보안 헤더입니다. HSTS 설정 방법, max-age 값, preload 추가 시기, 잘못 설정했을 때의 위험을 알아보세요.
배포 2026-05-08
Nginx에 SSL 인증서를 설치하는 방법
Nginx에 SSL 인증서를 설치하는 단계별 가이드. 파일 업로드, 전체 서버 블록 설정, TLS 모범 사례, HTTP/2, HSTS, 리다이렉트 설정, 테스트, 6가지 일반 오류 문제 해결을 다룹니다.
브라우저에서 무료 SSL 인증서 받기
설치 불필요, 계정 불필요. 개인키는 항상 기기에 남습니다.
인증서 발급