본문 바로가기
how to

how to set ssl certificate using "Let's encrypt" in nginx

by 즉흥 2023. 4. 12.
728x90
반응형

Let's encrypt를 이용하여 nginx에 무료로 인증서 설치하는 방법

 

1. certbot 설치

sudo apt install certbot
sudo apt install python3-certbot-nginx

 

 

2. 인증서 설치

sudo certbot --nginx -d <domain1> -d <domain2> ...

도메인이 하나라면 하나만 쓰면 된다.

 

근데 www.my-domain.kr, my-domain.kr 이렇게 두 개 등록하는게 편하다

 

혹시나 아래와 같은 에러 메시지가 발생한다면, "sudo apt install python3-certbot-nginx" 를 실행했는지 확인할 것.

 

Saving debug log to /var/log/letsencrypt/letsencrypt.log
The requested nginx plugin does not appear to be installed

 

또한 혹시나 아래와 같은 에러 메시지가 발생한다면..

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.

 

에러 메시지

조금 귀찮은 작업을 해야하는데,

 

sudo certbot certonly -d <YOUR DNS1> -d <YOUR DNS2> --manual --preferred-challenges dns

 

빨간 네모에 있는 값을 복사

위 명령어에서 나온 코드값을 복사하고 DNS 설정에서 레코드를 추가한다.

 

나는 가비아를 사용하기 때문에 아래 스크린샷은 가비아.

 

DNS 설정에 추가

위에서 나온 코드 값을 DNS 설정에서 레코드 추가해준다.

 

"TXT, _acme-challenge, 값"

 

정상적으로 진행됐다면 아래의 명령어를 통해 DNS 설정이 잘 적용되었는지 확인할 수 있다.

 

nslookup -q=TXT _acme-challenge.<YOUR DOMAIN>

명령어 실행 결과

 

 

3. 확인

sudo certbot certificates

위 명령어를 통해 현재 서버에 등록된 인증서를 확인할 수 있다.

 

혹시 위 명령어의 결과로 아래와 같은 메시지가 나오거나 사이트에서 인증서 적용이 안 되었다면 nginx 설정파일을 수동으로 등록해주면 된다.

 

IMPORTANT NOTES:
 - Unable to install the certificate
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/<domain>/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/<domain>/privkey.pem
   Your cert will expire on 2023-03-21. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"

 

nginx 설정파일 server{} 안에 아래 내용 추가

ssl on;

ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem;

 

4. crontab 등록

sudo certbot renew

인증서 갱신 명령어는 위와 같다.

 

5. 인증서 삭제

sudo certbot delete <domain>

 

.

 
728x90
반응형

댓글