Cloudflare 네임서버 Let's Encrypt DNS 갱신하기 (3/3)
안녕하세요? 하기 Cloudflare 네임서버의 마지막 글입니다.
HA에서 센서가 나 조만간 인증서 만료되니까 참고해 라고 알려주네요.
Cloudflare 네임서버 사용하기 (1/3)
https://blog.djjproject.com/767
Cloudflare 네임서버 DDNS 설정하기 / ddclient (2/3)
https://blog.djjproject.com/768
이외에 하기의 글도 있는데요. 이때는 수동으로 갱신을 했었는데 이번에는 자동으로 갱신해 보겠습니다.
실제로는 이전에는 DNSZI 를 사용했고, DDNS 에 장애가 생기면서 그리고 갱신의 귀찮음이 있어서 하기와 같이 시도해 보았습니다.
Let's Encrypt SSL 인증서 발급하기 (certbot / renew)
https://blog.djjproject.com/643
그럼 시작하겠습니다.
1. certbot 설치하기
root@debian:~# apt install certbot python3-certbot-dns-cloudflare |
2. API 키 파일 생성하기
일단은 제가 cloudflare 를 DNS 용도로만 사용하기 때문에 하기와 같이 Global 키를 사용하였습니다.
다른 서비스가 있다면, 보안적인 측면에서 글로벌 키를 사용하지 않는 것을 추천드립니다.
글로벌 키 관련으로는 2번째 DNS 게시글을 참조해 주세요.
하기와 같이 생성합니다.
root@debian:~# vi /root/.config/cloudflare_api.conf dns_cloudflare_email = "" dns_cloudflare_api_key = "" |
3. 갱신하기
일단은 certbot 을 처음 할 때, DNS 로 수동으로 인증을 받았습니다.
따라서, 한번 certbot renew 를 하기 위해서는 한번 auto 로 갱신해줄 필요가 있습니다.
root@debian:~# certbot certonly \ > --dns-cloudflare \ > --dns-cloudflare-credentials /root/.config/cloudflare_api.conf \ > --preferred-challenges dns-01 \ > --domain djjproject.com,*.djjproject.com Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator dns-cloudflare, Installer None Cert is due for renewal, auto-renewing... Renewing an existing certificate Performing the following challenges: dns-01 challenge for djjproject.com dns-01 challenge for djjproject.com Unsafe permissions on credentials configuration file: /root/.config/cloudflare_api.conf Waiting 10 seconds for DNS changes to propagate Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/djjproject.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/djjproject.com/privkey.pem Your cert will expire on 2022-02-15. 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" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le |
unsafe 퍼미션이 있다고 나오네요. 0600으로 고치겠습니다.
root@debian:~# chmod 0600 /root/.config/cloudflare_api.conf |
그리고 웹서버를 reload 합니다.
root@debian:~# service apache2 reload |
4. 자동 갱신하기
하루에 매번 갱신할 필요는 없고, 대략 45일마다 한번씩 하면 문제가 없을 것 같습니다.
하기와 같이 작성합니다.
root@debian:~# crontab -e # certbot renew 0 0 */45 * * su root -c "certbot renew; systemctl reload apache2" |
물론 45일에 실행하다 실패하면, 다음 45일까지 인증서가 갱신이 안될 수도 있습니다.
그러면 스크립트를 작성해서 막아볼 수도 있는데요. 일단은 자동으로 갱신이 되는지 또 한 2달 정도 지켜보겠습니다.
감사합니다.