chore(infra): record coolify caddy changes and apply dns-01 challenge as acme protocol #2342
+58
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
서버 1에서 돌아가는 Coolify의 리버스 프록시인 Caddy의 설정을 기록하고,
TLS certificate를 얻기 위한 세 가지 ACME Challenge 중 HTTP challenge나 TLS-ALPN challenge가 아닌 DNS Challenge를 이용하도록 변경합니다. (참고: Caddy ACME Challenges)
Route53에서 DNS를 사용하기 위해 Dockerfile로 caddy-dns/route53 모듈을 설치하여 Caddy 이미지를 새로 빌드하고, 이를 기반으로 컨테이너를 띄웁니다. acme-challenge.caddy를 dynamic configure으로 caddy에 추가하여 DNS-01 challenge를 사용합니다.
참고: Caddy wiki - How to use DNS provider modules in Caddy 2
Closes TAS-1228
Additional context
기존 Challenge (HTTP challenge, TLS-ALPN challenge)들의 문제점
sub.example.com
)에 대해서만 인증서를 발급할 수 있습니다. 따라서 매 Frontend Preview 배포가 일어날때마다 인증서를 발급받아야 합니다.DNS Challenge를 사용하는 이유
1. 와일드카드 인증서 발급 가능
.example.com
) 발급이 가능한 유일한 방식입니다.coolify.codedang.com
)에 대해서만 인증서를 발급할 수 있습니다.{pr-id}.coolify.codedang.com
을 기준으로 Preview 배포가 일어나는 프론트엔드 배포가 일어나는 저희의 상황에서,*.coolify.codedang.com
에 대해서 인증서를 발급받으면, 매 Preview 배포마다 인증서를 발급받을 필요가 없습니다.2. 방화벽 및 네트워크 제한에 독립적
(HTTP나 TLS 챌린지처럼 인증 기관이 저희 서버에 접속하지 않아도 괜찮습니다.)
Before submitting the PR, please make sure you do the following
fixes #123
).