Cloudflare API를 활용해 Let’s Encrypt 인증서 받기

사용 환경 : Ubuntu 22.04 LTS

준비하기

필요한 플러그인을 설치해줍니다.

sudo apt install certbot python3-certbot-dns-cloudflare

Cloudflare API 키를 생성합니다.

이 링크에서 API 키를 확인할 수 있습니다.

앞에서 확인한 API 키를 저장할 파일을 생성합니다. 이메일과 API 키는 자신의 것으로 변경합니다.

sudo vi ~/.secret/cloudflare.ini
dns_cloudflare_email = email@email.com
dns_cloudflare_api_key = 방금 확인한 api key

이 키는 절대 남에게 보여서는 안 됩니다. 그렇기 때문에, 이 파일의 권한을 변경해 줍니다.

sudo chmod 700 ~/.secret/
sudo chmod 600 ~/.secret/cloudflare.ini

인증서 발급하기

이제 인증서를 발급할 준비가 되었습니다. 이제 이 명령어를 이용해 인증서를 발급합니다. -d 뒤에 오는 도메인은 자신의 도메인으로 변경합니다.

certbot certonly \
--server https://acme-v02.api.letsencrypt.org/directory \
--dns-cloudflare --dns-cloudflare-credentials ~/.secret/cloudflare.ini \
--preferred-challenges dns-01 \
-d sakede.su \
-d *.sakede.su

이런 글이 보이면 인증서 발급에 성공한 것입니다.

- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/sakede.su/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/sakede.su/privkey.pem

nginx 연동하기

nginx 서버 블록에 다음을 추가합니다. sakede.su는 자신의 도메인으로 변경해 줍니다.

listen 443 ssl;
ssl_certificate         /etc/letsencrypt/live/sakede.su/fullchain.pem;
ssl_certificate_key     /etc/letsencrypt/live/sakede.su/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/sakede.su/chain.pem;