Let's Encrypt 설치 및 자동 갱신 (feat. Cloudflare)
무료 SSL 인증서를 설정하고 자동 갱신하자.
2022-02-16 17:34
3분
Let's encrypt 설치를 자동화 해주는 Certbot 패키지를 설치합니다.
sudo apt-get install certbot
Cloudflare 전용 DNS 플러그인을 설치합니다.
sudo apt-get install python3-certbot-dns-cloudflare
클라우드 플레어 사이트에 접속/로그인 합니다.
내 프로필 > 인증 으로 진입하여, Global API Key 보기 를 눌러서 자료를 저장합니다.
아래와 같이 설정 파일을 생성합니다.
mkdir ~/.secrets
mkdir ~/.secrets/certbot
cd ~/.secrets/certbot
vi cloudflare.ini
아래와 같이 해당 파일의 내용을 작성한 후, 저장합니다.
# Cloudflare API token used by Certbot
dns_cloudflare_email = {클라우드플레어 계정 이메일주소}
dns_cloudflare_api_key = {발급 받은 API Key}
마지막으로, 생성한 파일의 권한을 변경합니다.
chmod 600 ~/.secrets/certbot/cloudflare.ini
아래 명령어를 통해서 인증서 다운로드가 정상적으로 되는지 확인합니다. 아래 명령어에서 domain.com
, *.domain.com
부분은 자신의 도메인으로 변경합니다.
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /home/ubuntu/.secrets/certbot/cloudflare.ini -d domain.com,*.domain.com --preferred-challenges dns-01
다운로드 된 인증서를 확인합니다. 인증서 경로는 아래와 같습니다.
# 체인 인증서
/etc/letsencrypt/live/도메인명/fullchain.pem
#개인키
/etc/letsencrypt/live/도메인명/privkey.pem
위 인증서를 NGINX 가상 호스트 설정 파일 등에 적용하면 됩니다.
Crontab 설정을 통해 주기적으로 갱신 확인
sudo vi /etc/crontab
아래와 같이 설정합니다. (주기는 적절하게 수정 가능)
0 0 1 */3 * root certbot renew --quiet --post-hook "service nginx reload" > /dev/null 2>&1
위 설정을 통해, 주기적으로 인증서를 갱신할 수 있고, 인증서가 갱신되면 웹서버를 자동으로 재시작합니다.
이와 같이 무료로 쉽게 SSL 인증서를 갱신하고 사용할 수 있습니다.
궁금한 사항이나 보완 내용은 댓글로 남겨주시기 바랍니다.
감사합니다.