Let's Encrypt ACMEv2 with Cloudflare

ref: http://www.eigenmagic.com/2018/03/14/howto-use-certbot-with-lets-encrypt-wildcard-certificates/

최근 Let's Encrypt가 와일드카드 도메인을 지원하게 되었다.

Let's Encrypt 갱신

기존에 쓰던건 github에서 clone해서 사용하던건데, 이젠 뭔가 많이 바뀌었더군.
Certbot 사이트에서 적절하게 설치 방법을 획득할 수 있다.

난 Apache2에 Ubuntu 14.04이므로 다음 방법을 이용해서 설치했다.

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-apache 

이제 certbot plugins를 실행해보면 설치된 플러그인들이 나오는데, Cloudflare를 지원토록하는 플러그인을 추가 설치해야한다.

sudo pip3 install certbot-dns-cloudflare
명령으로 설치 가능하다.

다시 certbot plugins를 실행해보면 Cloudflare DNS를 지원하는 플러그인이 나타날 것이다.

Cloudflare API를 저장해야한다.

/etc/letsencrypt/dnscloudflare.ini 파일을 하나 생성하고 Cloudflare 홈페이지에서 우상단 계정 메뉴에서 My Profile을 선택하면 나타나는 페이지의 하단에 보면 API key를 획득하는 부분을 찾을 수 있다.
Global API Key를 복사해두고 다음 내용에 알맞게 채워 /etc/letsencrypt/dnscloudflare.ini 파일에 저장한다.

# CloudFlare API key information
dns_cloudflare_api_key = blahblahblah44399342234bland
dns_cloudflare_email = [email protected]

권한을 조정하자.
$ chmod 600 /etc/letsencrypt/dnscloudflare.ini

인증서 갱신

Let's Encrypt 설정파일(/etc/letsencrypt/cli.ini)을 수정한다.
server 항목을 다음과 같이 수정한다.
server = https://acme-v02.api.letsencrypt.org/directory

# certbot certonly --dns-cloudflare -d "*.도메인네임" -d 도메인네임

참 쉽죠?