엔진엑스(Nginx)에서 SSL(HTTPS)을 설정하려면 443 포트 리슨 지정, 인증서 및 개인 키 경로 매핑, 그리고 80 포트 HTTP에서 HTTPS로의 리다이렉트 구성을 작성해야 합니다. 무료 인증서인 Let’s Encrypt와 Certbot을 활용하면 가장 쉽고 빠르게 적용할 수 있습니다. [1, 2, 3]
1. Certbot을 이용한 인증서 자동 발급 (권장)
우분투/리눅스 환경에서 Certbot을 사용하면 인증서 발급과 Nginx 설정 자동화를 한 번에 진행할 수 있습니다. [1, 2]
- Certbot 및 Nginx 플러그인 설치 (
sudo apt install certbot python3-certbot-nginx) - 자동 설정 명령어 실행:bash
sudo certbot --nginx -d your-domain.com코드를 사용할 때는 주의가 필요합니다. - 이메일 입력 및 약관 동의 후 완료되면 Nginx 설정이 자동으로 갱신됩니다. [1, 2, 3, 4]
2. 수동 Nginx SSL 설정 파일 예시 (/etc/nginx/conf.d/your-domain.conf)
직접 인증서 경로를 물려 수동으로 서버 블록을 구성할 경우 아래 코드를 참고하여 작성합니다. [1, 2]
nginx
# 80 포트로 들어온 HTTP 요청을 443 포트 HTTPS로 강제 리다이렉트
server {
listen 80;
listen [::]:80;
server_name your-domain.com;
return 301 https://$host$request_uri;
}
# 443 포트 HTTPS 보안 서버 설정
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name your-domain.com;
# SSL 인증서 파일 경로 (Let's Encrypt 기준 예시)
ssl_certificate /etc/letsencrypt/live/://your-domain.com;
ssl_certificate_key /etc/letsencrypt/live/://your-domain.com;
# 보안 강화를 위한 최신 TLS 프로토콜 설정
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;
# 세션 캐시 최적화 (반복 접속 속도 향상)
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
location / {
root /var/www/html;
index index.html index.htm;
try_files $uri $uri/ =404;
}
}
코드를 사용할 때는 주의가 필요합니다.
3. 설정 반영 및 검증
- Nginx 설정 문법에 오류가 없는지 검사:bash
sudo nginx -t코드를 사용할 때는 주의가 필요합니다. - 이상이 없다면 Nginx 서비스를 재시작하여 설정을 반영합니다:bash
sudo systemctl restart nginx코드를 사용할 때는 주의가 필요합니다. - Let’s Encrypt 인증서는 90일마다 만료되므로 Certbot 자동 갱신 타이머가 정상 작동하는지
sudo certbot renew --dry-run명령어로 미리 점검해 두는 것이 안전합니다. [1, 2, 3, 4, 5]
만약 이 과정에서 추가로 필요한 부분이 있다면 말씀해 주세요:
- 도커(Docker) 환경에서 Nginx SSL을 연동하는 방법
- 와일드카드(Wildcard,
*.domain.com) 서브도메인 인증서 발급 방법

답글 남기기