프로젝트/Springboot_MariaDB

[AWS] Nginx와 Certbot을 사용하여 HTTPS 설정하기

CBJH 2024. 6. 27. 10:11
728x90
반응형

※ Nginx와 Certbot을 사용하여 HTTPS 설정하기

 

1. Nginx 설치

먼저 Nginx를 설치해야 합니다.

 

  1. 패키지 목록 업데이트:

sudo apt update

 

 2. Nginx 설치:

sudo apt install nginx

 

3. Nginx 시작 및 활성화:

sudo systemctl start nginx sudo systemctl enable nginx

 

 

2. Certbot 설치

Certbot은 Let's Encrypt에서 무료 SSL 인증서를 발급받을 수 있게 해주는 도구입니다.

  • Certbot 및 Nginx 플러그인 설치:
sudo apt install certbot python3-certbot-nginx

 

3. Nginx 설정 파일 수정

Certbot이 SSL 인증서를 자동으로 설정할 수 있도록 Nginx 설정 파일을 수정해야 합니다.

  1. Nginx 설정 파일 열기:
sudo nano /etc/nginx/sites-available/default
  • 서버 블록 수정: 기존 서버 블록을 아래와 같이 수정합니다.
server {
    listen 80;
    server_name your_domain_or_IP;

    location / {
        proxy_pass http://localhost:8080;  # 스프링부트 애플리케이션이 8080 포트에서 실행된다고 가정합니다.
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

 

  • Nginx 설정 테스트 및 재시작:
sudo nginx -t sudo systemctl restart nginx

 

4. SSL 인증서 발급 및 자동 설정

이제 Certbot을 사용하여 SSL 인증서를 발급받고 Nginx 설정을 자동으로 구성합니다.

  • Certbot 실행:
sudo certbot --nginx -d your_domain_or_IP
  • 인증 과정: 이메일 주소를 입력하고, 서비스 약관에 동의합니다. Certbot이 자동으로 SSL 인증서를 발급받고 Nginx 설정을 수정합니다.

 

5. SSL 인증서 갱신 설정

Let's Encrypt 인증서는 90일 동안 유효합니다. Certbot은 인증서를 자동으로 갱신할 수 있는 스크립트를 제공합니다.

  • 갱신 테스트:
sudo certbot renew --dry-run
  • 자동 갱신 설정: Certbot 패키지를 설치할 때 자동으로 cron job이 설정되므로 별도의 설정이 필요하지 않습니다. Certbot이 인증서를 주기적으로 갱신합니다.