3 min read

[nginx 운영] Certbot을 이용한 Let's Encrypt https 인증서 발급

안녕하세요. 오늘은 cenrtbot을 이용하여  Let's Encrypt https 인증서 발급방법에 대해 알아봅시다.

우선 아시는 바대로 https서버를 정상적으로 운영하려면 ssl인증서가 필요합니다.

https인증서는 도메인 발급기관에서 무료로 제공해주는 경우도 있고 https인증서판 전문적으로 판매하는 회사도 있습니다.

우리는 Let's Encrypt를 이용해 무료로 https인증서를 발급받는방법에 대해 알아봅시다.

본 튜토리얼은 nginx가 설치되어있고 이미 http서버를 운영중인 우분투,kali 등 데비안 기반 리눅스서버 운영자를 위하여 작성되었습니다.

Centos등 레드햇 기반 리눅스 시스템의 경우 일부 명령어를 수정해야 할수도 있습니다.

$ sudo apt-get update
우선 저장소 패키지를 업데이트한다

$ sudo apt-get install letsencrypt
Let's Encrypt 설치

인증서 발급 방식

Let's Encrypt는 다음과 같은 인증서 발급 방식이 존재한다

  1. DNS
  • 도메인 와일드 카드 인증서 발급 가능
  • TXT레코드 변경을 통해 외부 서버에서 인증

2. webroot

  • 웹서버 디렉토리로 인증
  • 하나의 도메인씩 발급 가능

3. 웹서버

  • nginx의 설정변경으로 발급이 가능하다.
  • 필자가 자주 사용하는 방법이다.

4. standalone

  • 웹사이트 네트워크를 통해 인증
  • 웹사이트 중단이 필요하다.

인증서 발급받기

필자는 nginx 옵션으로 웹서버로 인증서를 발급 받을 거다.

https 인증서를 발급받을 도메인들에 대하여 우선 http 서버를 구동하고 있어야 한다.

$ sudo certbot --nginx -d dbms.anhyunjun.com -d example.anhyunjun.com

-d 옵션을 사용하여 여러개 인증하는게 가능하다. 단, 이전에 설명한 바와 같이 해당 도메인들에 대하여 우선 http로 웹을 가동중이여야 한다.

인증서를 발급받으면 생성하면서 입력한 디렉토리에 인증서가 생성이 되어있다.

기본적으로 /etc/letsencrypt/live/<도메인> 디렉토리에 저장이 된다.

그리고 인증서는 90일후 만료되는데 자동으로 연장되게 할 수 있다. 다음에 다뤄볼 예정이다.

이후 Nginx configuration 수정을 통해 https를 적용시킨다 nginx conf 파일 예제를 깃허브에 올려두었다.

https://github.com/hjaka08/certbot-nginx_exam

///////////////

요즘에 서버에 접속을 안해서 갑자기 리눅스 명령어들도 잘 기억이 안난다.

네트웍 장비 명령어들도 기억이 안나고..