Tailscale + Caddy를 이용해서 외부 오픈안하고 Vaultwarden 접속하기
안녕하세요. 달소입니다.
앞서 작성했던 Caddy 서버를 구축한이유는 내부에서 통신하는것들을 프록시 + https 설정을 해주기 위함인데요
Vaultwarden의 경우 https를 통해서 접속했을때만 제대로 사용이 가능하기도하고 caddy에서는 공식적으로 tailscale의 매직 DNS에 대한 인증서를 지원해주기 때문에 caddy를 사용해서 구성했습니다.
잘 구성한다면 외부로 Vaultwarden 을 노출하지않고 tailscale을 연결했을만때 도메인으로 접속할 수 있게만들수 있습니다.
Caddy 구성의 경우 아래글을 먼저 진행해주시면됩니다.
구성환경
tailscale
Ubuntu 24.04 LTS
Caddy
Docker로 구성된 vaultwarden
Magic DNS 확인하기
먼저 tailscale에서 Magic DNS를 활성화 해주고 사용할 수 있는 도메인을 체크해주세요.
매직 DNS는 tailscale에 연결되었을때 기기의 이름을 고유한 도메인과 붙여서 사용할 수 있게 해줍니다.
여기서 tailbc61.ts.net은 저의 tailscale 고유의 도메인이라고 보시면됩니다.
만약 기기 이름이 mgt라면
mgt.tailbc61.ts.net을 호출하면 해당 mgt 서버로의 통신이 이뤄집니다.
Caddy 설정하기
이제 Caddy에서 간단하게 컨피그만 넣어주면 됩니다.
저같은경우 mgt서버에서 여러가지 서비스를 구동하다보니 도메인 하나당 서비스가 아닌 뒤에 path로 구별해주려고합니다.
예를들어 mgt 서버의 vaultwarden 이면
mgt.[magicdns]/pass 와 같이요.
Caddy 설정파일은 /etc/caddy/Caddyfile입니다.
아래처럼 설정값을 넣어주면 됩니다.
뭐 말그대로 해당 도메인의 path로 넘어오면 내부의 8088 포트로 리버스프록시를 해준다는 의미입니다.
여기서 8088은 당연히 vaultwarden이구요 ㅎㅎ
여기까지 설정해주고
caddy start --config /etc/caddy/Caddyfile 나
caddy reload --config /etc/caddy/Caddyfile 로 서비스를 다시 불러와주시면됩니다.
그리고 tailscale이 연결된상태로 mgt.tailbc61.ts.net/pass/ 로 연결해주면
인증서가있는 내부도메인으로 잘 붙어집니다.
마찬가지로 확장프로그램도 이렇게 연결해주시면됩니다.
참고