let_s_encrypt_certbot_wildcard_certificates

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
let_s_encrypt_certbot_wildcard_certificates [2020/12/13 05:57] koovlet_s_encrypt_certbot_wildcard_certificates [2023/01/31 05:50] (현재) – [문제점] koov
줄 10: 줄 10:
   * 만약 해당 도메인을 소유하고 있고 해당 도메인의 ''DNS'' 를 직접 운영중이라면 해당 DNS서버의 **레코드 정보를 직접 수정할 권한**을 가지고 있어야 한다.   * 만약 해당 도메인을 소유하고 있고 해당 도메인의 ''DNS'' 를 직접 운영중이라면 해당 DNS서버의 **레코드 정보를 직접 수정할 권한**을 가지고 있어야 한다.
   * 도메인을 소유하고 있지만 별도의 관리 업체를 통해서(예:가비아, 닷네임등) 도메인을 관리하고 있으며 해당 업체의 DNS서버를 사용중인경우 __업체가 제공하는 DNS 레코드 관리 기능__을 통해서 아래에서 요구하는 레코드 정보를 수정 할 수 있어야 한다.   * 도메인을 소유하고 있지만 별도의 관리 업체를 통해서(예:가비아, 닷네임등) 도메인을 관리하고 있으며 해당 업체의 DNS서버를 사용중인경우 __업체가 제공하는 DNS 레코드 관리 기능__을 통해서 아래에서 요구하는 레코드 정보를 수정 할 수 있어야 한다.
 +
 +<WRAP center round important 60%>
 +이렇게 준비되었다 하더래도 또다른 문제가 있다.
 +바로 유효기간 90일(3개월)이 지난 이후 갱신할때가 문제이다.
 +이부분은 아래 문제점 부분에서 설명한다.
 +</WRAP>
 +
 +
  
 ===== 발급절차 ===== ===== 발급절차 =====
줄 16: 줄 24:
   * ''koov.kr'' 도메인에 대해서는 와일드카드 인증서로 처리가 되지 않으므로 별도로 추가해줘야 한다.   * ''koov.kr'' 도메인에 대해서는 와일드카드 인증서로 처리가 되지 않으므로 별도로 추가해줘야 한다.
  
-''certbot certonly --manual --preferred-challenges dns -d "koov.kr" -d "*.koov.kr"'' 명령어를 통해서 인증서 발급 절차를 시작한다.+''%%certbot certonly --manual --preferred-challenges dns -d "koov.kr" -d "*.koov.kr"%%'' 명령어를 통해서 인증서 발급 절차를 시작한다.
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
줄 195: 줄 203:
    Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate    Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
    Donating to EFF:                    https://eff.org/donate-le    Donating to EFF:                    https://eff.org/donate-le
- 
-root@proxy:/etc/haproxy# 
  
 </code> </code>
줄 202: 줄 208:
  
 인증서 발급이 완료 되었다. 인증서 발급이 완료 되었다.
 +
 +===== 문제점 =====
 +<WRAP center round important 60%>
 +이 방식으로 wildcard 인증서를 받게 되면 갱신시 아래와 같은 중요한 문제점이 있다.
 +</WRAP>
 +
 +**와일드 카드 인증서를 받는 방식은 DNS 소유권을 확인하는 과정이 필요하기 때문에 갱신시에도 ''DNS _acme-challenge TXT'' 값을 매번 갱신해서 소유권을 확인하도록 되어있다.
 +보통 도메인 대행업체를 이용해서 사용하는 대부분의 경우 이 TXT 레코드를 자동으로 변경해주는 기능이 없기 때문에 인증서 자동갱신이 되지 않는다.**
 +
 +certbot 에서 제공하는 TXT 레코드 자동갱신 플러그인은 아래와 같이 다양한 종류를 지원한다.
 +  * ''Cloudflare DNS plugin''
 +  * ''DigitalOcean DNS plugin''
 +  * ''DNSimple DNS plugin''
 +  * ''Gehirn DNS plugin''
 +  * ''Google DNS plugin''
 +  * ''Linode DNS plugin''
 +  * ''OVH DNS plugin''
 +  * ''RFC 2136 DNS plugin''
 +  * ''Amazon Route53 DNS plugin''
 +  * ''SakuraCloud DNS plugin''
 +
 +위에서 지원하지 않는 **일반 도메인대행업체의 DNS서버를 이용하여 와일드카드 인증서를 받았다면 자동갱신은 불가능하다**고 보면 된다.
 +따라서 자동갱신이 가능한 ''AWS Route53'', ''CloudFlare'', ''Google DNS'' 등의 서비스를 이용하면 편하게 갱신할 수 있다는점을 참고하기 바란다.
 +
 +또한 직접 DNS서버(bind같은)를 운영한다면 ''rfc2136'' 플러그인을 사용하여 갱신도 가능하다.
 +
 +===== Cloudflare DNS를 이용한 와일드카드 인증서 =====
 +관련문서:https://certbot-dns-cloudflare.readthedocs.io/en/stable/
 +
 +''Cloudflare DNS''를 이용중인경우에는 ''Cloudflare DNS API''를 이용하여 ''와일드카드 인증서''를 편하게 발급받을수 있다. 또한 갱신도 API를 통해 자동으로 처리되기 때문에 편리하다.
 +
 +먼저 필요한것은 ''certbot''의 ''cloudflare plugin''을 설치하여야 한다.
 +
 +<WRAP prewrap>
 +<code bash>
 +$ apt install python3-certbot-dns-cloudflare
 +</code>
 +</WRAP>
 +
 +이제  ''Cloudflare DNS''에 본인의 사이트를 등록한 후 API를 이용하기 위한 API Token을 발급받는다.
 +
 +''사이트선택'' -> ''API 토큰'' -> ''토큰생성(영역 DNS 편집)''  으로 토큰을 생성한다. 생성된 토큰값을 복사한다.
 +
 +복사한 토큰값을 ''cloudflare.ini'' 파일로 저장한다. 이 예제에서는 ''~/.secrets/certbot/cloudflare.ini'' 경로에 생성하였다.
 +
 +<WRAP prewrap>
 +<code vim>
 +# Cloudflare API token used by Certbot
 +dns_cloudflare_api_token = AABBCCDDEEFF..XXYYZZ
 +</code>
 +</WRAP>
 +
 +이후 해당 토큰을 이용하여 ''cloudflare plugin''을 통해 와일드카드 인증서를 발급받도록 한다.
 +
 +<WRAP prewrap>
 +<code bash>
 +$ certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini -d "koov.kr" -d "*.koov.kr"
 +</code>
 +</WRAP>
 +
 +발급이 완료되었다.
  
 ===== 참조링크 ===== ===== 참조링크 =====
   * https://hiseon.me/server/letsencrypt-wildcard-certificate/   * https://hiseon.me/server/letsencrypt-wildcard-certificate/
   * https://certbot.eff.org/docs/using.html   * https://certbot.eff.org/docs/using.html
 +  * https://blog.realsangil.net/2018/10/letsencrypt-wildcard-certification-renew/ 
 +  * https://darkstart.tistory.com/109?category=871909 
 +  * https://linux.m2osw.com/setting-bind-get-letsencrypt-wildcards-work-your-system-using-rfc-2136 
 +  * https://skorotkiewicz.github.io/techlog/automated-lets-encrypt-wildcard-certificates-with-local-bind/
  • let_s_encrypt_certbot_wildcard_certificates.1607839061.txt.gz
  • 마지막으로 수정됨: 2020/12/13 05:57
  • 저자 koov