Nginx에서 HTTPS 설정 방법

IRISH·2024년 6월 27일

JAVA

목록 보기
5/5
post-thumbnail

HTTP에서 HTTPS로 전환하면 웹 사이트의 보안이 강화되며, 사용자의 데이터가 암호화됩니다. 이를 위해 SSL/TLS 인증서를 설정해야 합니다. 아래는 Nginx에서 HTTPS를 설정하는 단계입니다.

1. SSL/TLS 인증서 준비

  • 무료 SSL 인증서: Let’s Encrypt를 사용하여 무료로 SSL 인증서를 발급받을 수 있습니다.
  • 유료 SSL 인증서: 인증 기관(CA)에서 구매할 수 있습니다.

2. Certbot을 사용하여 Let’s Encrypt SSL 인증서 발급

Certbot은 Let’s Encrypt에서 SSL 인증서를 자동으로 발급 및 갱신해주는 도구입니다.

Certbot 설치

Ubuntu를 예로 들면:

sudo apt update
sudo apt install certbot python3-certbot-nginx

SSL 인증서 발급

Certbot을 사용하여 Nginx 구성 파일을 자동으로 수정하고 SSL 인증서를 발급받을 수 있습니다.

sudo certbot --nginx -d example.com -d www.example.com

여기서 example.comwww.example.com은 당신의 도메인입니다. 명령어를 실행하면 Certbot이 자동으로 Nginx 설정을 수정하고 SSL 인증서를 발급합니다.

3. 수동 설정 방법

만약 수동으로 설정하려면, 발급받은 SSL 인증서를 Nginx 설정 파일에 추가해야 합니다.

SSL 인증서 파일 및 키 파일 위치

일반적으로 인증서 파일(fullchain.pem)과 키 파일(privkey.pem)은 /etc/letsencrypt/live/example.com/ 디렉토리에 저장됩니다.

Nginx 설정 파일 수정

Nginx 설정 파일(/etc/nginx/sites-available/default 또는 사용자 정의 설정 파일)을 열어 다음과 같이 수정합니다:

server {
    listen 80;
    server_name example.com www.example.com;

    # 모든 HTTP 요청을 HTTPS로 리다이렉트
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;

    root /path/to/your/project;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

위 설정에서는 HTTP 요청을 HTTPS로 리다이렉트하고, 443 포트에서 SSL을 활성화합니다. ssl_certificatessl_certificate_key 지시어는 인증서 파일과 키 파일의 경로를 지정합니다.

4. Nginx 재시작

설정을 완료한 후, Nginx를 재시작하여 변경 사항을 적용합니다:

sudo systemctl restart nginx

5. HTTPS 접근 확인

브라우저에서 https://example.com으로 접근하여 HTTPS가 제대로 설정되었는지 확인합니다.

요약

  • SSL/TLS 인증서 준비: Let’s Encrypt 또는 유료 인증서.
  • Certbot 사용: 자동으로 SSL 인증서를 발급받고 Nginx 설정 수정.
  • Nginx 설정 수정: SSL 인증서 경로를 설정하고 HTTP를 HTTPS로 리다이렉트.
  • Nginx 재시작: 변경 사항 적용.
  • HTTPS 접근 확인: 브라우저에서 HTTPS로 접근하여 확인.

이 과정을 통해 Nginx에서 HTTPS를 설정할 수 있습니다.

profile
#Software Engineer #IRISH

0개의 댓글