본문 바로가기

우분투

[우분투] certbot : ssl 인증서 발급 및 nginx 적용

 


1. 인증서 받기

# certbot 설치
sudo apt install python3-certbot-nginx

# 인증서 받기
certbot certonly --nginx -d stargate.gonetis.com 
## certonly : 인증서만 다운받음고 conf 파일 수동 설정하기

# 인증서 확인하기(pem 파일 4개)
ls -al /etc/letsencrypt/live/stargate.gonetis.com

 

 

2. nginx의 conf 파일 설정하기

# conf 파일 만들기
sudo nano /etc/nginx/conf.d/stargate_ssl.conf

 

3. conf 파일 내용

 (1) 샘플 1

server {
  listen 443 ssl http2;
  listen [::]:443;
  server_name stargate.gonetis.com;

  # ssl dir 
  ssl_certificate /etc/letsencrypt/live/stargate.gonetis.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/stargate.gonetis.com/privkey.pem;

  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    try_files $uri $uri/ =400;
        
  }
}

 

 (2) 샘플 2

# 다른 포트7000 으로 리디렉션 하는 경우

server {
  listen 443 ssl http2;
  listen [::]:443;
  server_name stargate.gonetis.com;

  # ssl dir 
  ssl_certificate /etc/letsencrypt/live/stargate.gonetis.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/stargate.gonetis.com/privkey.pem;
  
  location / { 
   # root /usr/share/nginx/html;
   # index index.html index.htm;
   # try_files $uri $uri/ =400;
   
    proxy_pass http://localhost:7000; 
    
  }
}

 

 

4. nginx 재시작

sudo service nginx stop
sudo service nginx start

 

 

5. 인증 갱신

# 갱신 
sudo certbot renew

# 갱신 시뮬레이션 (실제로 갱신 되지 않음)
sudo certbot renew --dry-run

# 자동 갱신
sudo nano /etc/cron.d/certbot

 

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 1 * * 6 root certbot -q renew --nginx