Top

Ubuntu에서 Let’s Encrypt 인증서 자동으로 받기

테스트 환경

테스트를 위한 도메인 네임 받기

네트워크 장비 확인

인증서 설치할 환경에 nginx 설치

sudo apt install nginx
sudo service nginx status

/etc/nginx/site-enabled/default 를 변경하여 registry.booiljungtest1.tk, mavlink.booiljungtest1.tk, p2p.booiljungtest1.tk 서버를 추가하고 /var/www/에 root 파일들을 추가한다.

기본 서버의 server_name은 www.booiljungtest1.tk로 변경한다.

웹브라우저로 접속하여 확인해 본다.

인증서 받기

설치 예시 (ubuntu 18.04 2021년 1월)

snap 설치 및 업그레이드

sudo apt install snap
sudo snap install core; sudo snap refresh core

구버전 데비안 패키지 certbot이 설치 되어 있다면

dpkg -l certbot
sudp apt remove certbot

certbot 설치

sudo snap install --classic certbot

설치. 질의에 답을 한다.

sudo certbot --nginx

성공하면 다음이 표시 된다.

Requesting a certificate for www.booiljungtest1.tk
Performing the following challenges:
http-01 challenge for registry.booiljungtest1.tk
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/default
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/default

인증서 (재)발급 테스트.

sudo certbot renew --dry-run

(재)발급 결과

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/www.booiljungtest1.tk.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator nginx, Installer nginx
Account registered.
Simulating renewal of an existing certificate for www.booiljungtest1.tk
Performing the following challenges:
http-01 challenge for www.booiljungtest1.tk
Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/www.booiljungtest1.tk/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded: 
  /etc/letsencrypt/live/www.booiljungtest1.tk/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

certbot 이 nginx/site-enabled/default 를 변경하여

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

    listen 80 ;
    listen [::]:80 ;
    server_name www.booiljungtest1.tk;
    return 404; # managed by Certbot
}

추가한다.

인증서는

/etc/letsencrypt/archive/*

에 있다고 한다.

참조

https://happist.com/573990/%EC%B5%9C%EC%8B%A0-lets-encrypt-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EB%B0%9C%EA%B8%89-%EB%B0%A9%EB%B2%95-3%EA%B0%80%EC%A7%80-%EC%A0%95%EB%A6%AC