페이지 트리

이 페이지는 Let's Encypt에서 운영하는 무료 SSL 인증서를 받는 방법에 대해 정리한다.

기준 OSCentOS 7


사전 준비

EPEL repository 설정

  • Certbot이 EPEL package 이므로 EPEL repository를 사용할 수 있도록 설정한다
$ yum install epel-release

도메인 관리자 권한

SSL을 받을 때 _acme-challenge.<domain> 에 TXT record를 생성해야 하므로 도메인 관리자 계정이 필요하다.

Certbot 설치

$ yum install python2-certbot-apache

인증서 받기

Certbot은 인증서를 받기 그리고 web server 설정에 반영하기를 지원한다.

본 정리에서는 인증서를 받는 방법에 대해 정리한다.

Step 1) certbot 실행

$ certbot certonly -d <발급하려는 도메인 이름> -d <발급하려는 또 다른 도메인 이름> --manual --preferred-challenges dns-01 --force-renewal --manual-public-ip-logging-ok
  • 발급하려는 도메인 이름
    예) *.curvc.com
         *.almdemo.curvc.com
         jira.almdemo.curvc.com

Step 2) _acme-challenge 레코드 생성

이 단계는 certbot (letsencrypt)가 도메인 소유주가 맞는지 확인하는 절차로써 certbot이 지정한 문자열을 지정된 도메인 (_acme-challenge.~) 레코드로 생성해 하고 certbot이 이를 확인하는 과정이다.



- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.almdemo.curvc.com with the following value:

ZFETHF7O9RWoct4tk8jkgrXIqjbZMBA0J1WLW5OITv4

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue


  • 도메인 서비스의 zone edit menu에서 _acme-challenge.<발급하려는 도메인 이름>에 TXT 형식의 레코드를 생성한다.

예) *.curvc.com 이라면: _acme-challenge.almdemo.curvc.com 에 TXT 값 (ZFETHF7O9RWoct4tk8jkgrXIqjbZMBA0J1WLW5OITv4)  레코드 생성 (기존에 존재하면 TXT 값 수정)

일반적으로 도메인 서버에 반영되기까지 시간이 필요하므로 충분히 (2분 이상) 기다리거나, 아래 방법으로 반영 여부를 확인후 Enter를 입력해 다음 단계로 진행한다.



도메인 레코드 반영 확인 방법
$ dig -t TXT _acme-challenge.almdemo.curvc.com

; <<>> DiG 9.10.6 <<>> -t TXT _acme-challenge.almdemo.curvc.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26540
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;_acme-challenge.almdemo.curvc.com. IN	TXT

;; ANSWER SECTION:
_acme-challenge.almdemo.curvc.com. 301 IN TXT	"RJULHF7O9RWoct4tk8jkgrXIqjbZMBA0J1WLW5OITv4"

;; Query time: 298 msec
;; SERVER: 10.0.0.3#53(10.0.0.3)
;; WHEN: Thu Sep 13 18:31:11 KST 2018
;; MSG SIZE  rcvd: 107

13 line과 같이 설정했던 값이 확인되면 다음 단계로 진행한다.

Step3) 인증서 확인


다음 문구와 같이 발급된 인증서가 저장된 위치를 알려준다.


예) /etc/letsencrypt/live/almdemo.curvc.com


IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/almdemo.curvc.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/almdemo.curvc.com/privkey.pem
   Your cert will expire on 2018-12-12. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"

Step 4) 인증서 사용

저장된 인증서를 필요한 곳에 사용하면 됨

인증서 갱신

$ certbot renew


참고

  • 레이블 없음