안녕하세요. 달소입니다.
앞서 Caddy를 docker로 구성하는 가이드를작성해드렸는데요.
사실 caddy의 경우 cloudflare의 api를 통한 wildcard 인증서 필요가 굳이.. 없다고생각하긴하지만.
와일드카드 인증서를 발급받아놓으면 인증서만 다운로드받아서 내부 용도로도 쓸수도있기떄문에 일단 작성해보겠습니다.
cloudflare api키 확인
아래 링크로 로그인 하신 뒤
https://dash.cloudflare.com/profile/api-tokens
아래 과정으로 API키를 발급받아주세요.
- Cloudflare에 로그인하고 대시보드로 이동합니다.
- 상단 메뉴에서 “계정(Account)”을 선택하고, “API 키(API Tokens)”를 클릭합니다.
- “API 키 만들기(Create Token)” 버튼을 클릭합니다.
- “스코프(Scope)” 영역에서 “Zone:DNS:Edit”를 선택합니다. (이 스코프는 DNS 레코드를 읽고 쓸 수 있는 권한을 부여합니다.)
- “특정 리소스(Resource)”에서는 “특정 리소스 지정하지 않음(Not Specified)”을 선택합니다.
- “생성(Create)” 버튼을 클릭하고, 인증 방법을 선택합니다. (여기서는 “Global API Key”를 선택합니다.)
docker-compose / Caddyfile수정하기
기존에 만들어놓은 docker-compose.yml 파일 밑에 아래처럼 변경해줍니다.
이미지는 slothcroissant/caddy-cloudflaredns 로 바꿔주시고
*기본이미지에서 사용하시려면 command에서 클플 모듈을 로드해주시면됩니다.
command: /bin/sh -c ‘if ! caddy list-modules | grep -q dns.providers.cloudflare; then caddy add-package github.com/caddy-dns/cloudflare; fi; caddy run –config /caddyfile –adapter caddyfile’
환경변수에서 아래 두줄만 사용하시는 환경에 맞춰서 넣어주시면 되겠습니다.
- CF_API_EMAIL=your_email@example.com
- CF_API_KEY=your_api_key
이제 Caddyfile을 수정해주실 차례입니다.
도메인의 기본설정안에 아래 내용을 넣어주시고 reload or restart해주시면됩니다.
tls { dns cloudflare env.CF_API_KEY} }
그리고 재시작 해주시면됩니다.
사실 일반적인 도메인의 경우 위처럼 했을때에도 인증서를 보면 와일드카드가 아닌 일반도메인 인증서로 발급받아지실텐데요.
*.dalso.org로 와일드카드 인증서를 받아보겠습니다.
로그를보면 아래처럼 나옵니다.
경로로 가보면 와일드카드 인증서가 발급받아진걸 확인하실 수 있습니다.
와일드 카드인증서를 서브도메인에 적용하려면 아래가이드가 가장 적절합니다.
*.example.com {
tls {
dns <provider_name> [<params…>]
}
@foo host foo.example.com
handle @foo {
respond “Foo!”
}
@bar host bar.example.com
handle @bar {
respond “Bar!”
}
# Fallback for otherwise unhandled domains
handle {
abort
}
}
https://caddyserver.com/docs/caddyfile/patterns#wildcard-certificates
Common Caddyfile Patterns — Caddy Documentation
Caddy is a powerful, enterprise-ready, open source web server with aut
끝!