Linux

[Linux] Let's encrypt 로 도메인 인증서 발급 방법

IT-PAPA 2023. 4. 29. 06:51
728x90
반응형

도메인에 대해 Let's Encrypt 인증서를 발급하려면 다음과 같은 절차를 따를 수 있습니다.

1. certbot 설치: 다음 명령어를 사용하여 certbot을 설치합니다.

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

 

2. Nginx 설정 변경: 인증서 발급을 위해 Nginx 서버에 대한 HTTP-01 방식의 도메인 검증이 필요합니다. 이를 위해서는 Nginx 설정 파일에 다음과 같은 내용을 추가해야 합니다.

server {
    listen 80;
    server_name test.domain.com;
    location ~ /.well-known/acme-challenge {
        allow all;
        root /var/www/html;
    }
}

위의 설정은 test.domain.com 도메인으로 들어오는 HTTP 요청 중 /.well-known/acme-challenge 경로로 시작하는 요청에 대해 /var/www/html 디렉토리의 파일을 응답하도록 합니다.

 

3. 인증서 발급: 다음 명령어를 사용하여 인증서를 발급합니다.

sudo certbot certonly --agree-tos --email test@gmail.com --webroot --webroot-path /var/www/html -d test.domain.com

위의 명령어에서 --webroot 옵션은 HTTP-01 방식의 인증서 검증을 수행하는 옵션입니다. --webroot-path 옵션은 인증서 발급을 위한 웹 루트 디렉토리를 지정합니다.

명령어 실행 후, certbot은 자동으로 검증용 파일을 생성하고, Let's Encrypt 인증서를 발급받습니다.

 

4. Nginx 설정 변경: 인증서 발급이 완료되면 Nginx 설정 파일에 SSL 인증서 관련 내용을 추가해야 합니다.

server {
    listen 80;
    server_name test.domain.com;
    location ~ /.well-known/acme-challenge {
        allow all;
        root /var/www/html;
    }
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name test.domain.com;
    ssl_certificate /etc/letsencrypt/live/test.domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/test.domain.com/privkey.pem;
    location / {
        proxy_pass http://localhost:3000; # 예시
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

 

5. nginx 설정 적용

sudo service nginx reload
728x90
반응형
LIST