무료로 SSL 인증서 Let's Encrypt

YOBY·2024년 6월 14일
0

Let's Encrypt


  1. Certbot 설치:
    Certbot은 Let's Encrypt 인증서를 쉽게 발급받을 수 있는 도구입니다.
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx

  1. SSL 인증서 발급:
    Certbot을 사용하여 Nginx 서버에 SSL 인증서를 발급받습니다.
    SSL 인증서를 /etc/nginx/ssl/ 디렉토리에 복사합니다.
    인증서 파일(your_domain.crt)과 키 파일(your_domain.key)을 해당 디렉토리에 저장합니다.
sudo certbot --nginx -d your_domain

  1. 자동 갱신 설정:
    Let's Encrypt 인증서는 90일 동안 유효하므로 자동 갱신을 설정합니다.
sudo certbot renew --dry-run

  • 이 과정을 통해 무료로 SSL 인증서를 설치하고 Nginx 서버에서 HTTPS를 사용할 수 있습니다.

Nginx 설정 파일 수정

upstream backend {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name your_domain;

    # Redirect all HTTP requests to HTTPS
    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name your_domain;

    ssl_certificate /etc/nginx/ssl/your_domain.crt;
    ssl_certificate_key /etc/nginx/ssl/your_domain.key;

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

    # Tomcat service
    location / {
        proxy_pass http://backend;
        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;
    }
}

return 301 https://$host$request_uri;

  • 301 Moved Permanently는 HTTP 상태 코드로, 클라이언트에게 요청한 리소스가 영구적으로 새로운 위치로 이동됩니다.

  • $host: 요청된 URL의 호스트 부분을 포함합니다.(클라이언트가 요청한 호스트명이 포함)

  • $request_uri: 요청된 URI를 포함합니다.

ssl_protocols TLSv1.2 TLSv1.3;

  • SSL/TLS 프로토콜
    TLSv1.2와 TLSv1.3를 지원한다는 것을 의미합니다.

ssl_ciphers HIGH:!aNULL:!MD5;

  • SSL/TLS 연결에서 허용할 암호화 알고리즘(암호화 방식)을 정의합니다.
    HIGH는 암호화 강도가 높은 알고리즘들을 사용하도록 지시합니다.
    !aNULL은 익명 암호화를 비활성화시킵니다.
    즉, NULL 암호화는 허용하지 않음을 의미합니다.
    !MD5는 MD5 해시 알고리즘을 사용한 암호화를 허용하지 않음을 나타냅니다.
    MD5는 현재 보안 취약점이 있어 사용을 권장하지 않습니다.

  1. Nginx 설정 테스트 및 재시작
    Nginx 설정을 테스트하고 재시작합니다.
sudo nginx -t
sudo systemctl restart nginx

  1. 방화벽 설정
    443 포트가 방화벽에서 열려 있는지 확인합니다.
sudo ufw allow 443

이제 Nginx 서버가 SSL을 사용하여 443 포트에서 통신하도록 설정되었습니다.

0개의 댓글

관련 채용 정보