반응형

nginx로 서버를 만들고나면 https 설정이 필요하다.

 

그리고 여기에서 SSL 인증서가 필요하다.

 

유료 인증서도 있지만 무료로 받는 방법도있다.

 

물론 제한적 무료다. (3개월 마다 갱신해야 한다. 물론 자동화하여 평생 무료로 쓸 수 있다.)

 

 

 

1. Let’s Encrypt 설치 (ubuntu 24.04 환경)

 

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

 

위의 3가지 커맨드로 리스트 업데이트 및 'certbot'을 설치한다.

 

 

2. 도메인 연결

 

서버의 ip주소를 도메인과 연결한다. (가비아 등등)

 

 

3. ubuntu에서 인증서(certbot) 설정하기

 

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

 

example.com에 내 도메인을 넣으면된다.

 

커맨드를 입력하면 몇가지 질문을 한다.

 

1) E-mail address : 사용자 확인 겸 인증서 만료가 다가오면 메일로 알려주는 역할을 한다. 자주 사용하는 메일을 입력해준다.

2) 서비스 동의 : 서비스 동의 사항이다. 그냥 'Y'를 입력한다.

3) E-mail 제공 동의 : 제단에 E-mail주소를 공유할지 선택한다.

 

** 이미 nginx를 설정해 놓은 상태여서 도메인을 따로 묻지는 않는다.

 

 

4. nginx를 재실행 한다.

systemctl restart nginx.service
systemctl status nginx.service

 

 

certbot으로 인증서를 만들면 자동으로 nginx 설정파일을 자동으로 수정해준다.

 

아래 설정에서 '# managed by Certbot'이 붙은 내용이 자동으로 설정된 내용이다.

# /etc/nginx/sites-available/default

server {
    server_name   example.com www.example.com;
    location / {
	root /var/www/wwwroot;
	index index.html index.htm;
	try_files $uri $uri/ /index.html;
	expires 30d;
    }

    listen 443 ssl http2; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}


server {
    # if ($host = example.com) {
        # return 301 https://$host$request_uri;
    # } # managed by Certbot

    listen        80;
    server_name   example.com;
    return 301 https://$host$request_uri; # managed by Certbot  
}

 

 

 

-- 인증서 만료일 확인 방법

sudo certbot certificates

 

 

5. 인증서 자동 갱신 방법

 

Let’s Encrypt 인증서는 90일 주기로 만료된다. (물론 재신청 가능하다.)

 

ubuntu의 crontab을 이용하여 주기적으로 인증서 갱신을 실행시켜 기한 제한 없이 사용하면 된다.

 

 

crontab -e

 

1 ~ 4중 하나를 선택한다. (에디터 선택, 아무거나 선택해도 무관)

 

 

0 12 * * * /usr/bin/certbot renew --quiet

 

에디터 주석 맨 밑에 위의 한줄을 추가한다.

 

인증서 만료일이 30일 이내인 경우 인증서를 갱신하는 코드이다.

 

앞 5개의 숫자는 순서 시점을 나타낸다. (서버 시간 기준)

 

분(0~59)   시간(0~23)   일(1~31)   월(1~12)   요일(0~7)  <*(별)을 설정한 경우 매번 실행>

 

 

crontab -l

 

위의 커맨드로 실행될 리스트를 확인한다.

반응형

'C# > Blazor' 카테고리의 다른 글

우분투 포트 여는 방법 (ubuntu ipstables)  (1) 2024.10.14

+ Recent posts