Tailscale + Caddy를 이용해서 외부 오픈안하고 Vaultwarden 접속하기

 

안녕하세요. 달소입니다.

앞서 작성했던 Caddy 서버를 구축한이유는 내부에서 통신하는것들을 프록시 + https 설정을 해주기 위함인데요

 

Vaultwarden의 경우 https를 통해서 접속했을때만 제대로 사용이 가능하기도하고 caddy에서는 공식적으로 tailscale의 매직 DNS에 대한 인증서를 지원해주기 때문에 caddy를 사용해서 구성했습니다.

 

잘 구성한다면 외부로 Vaultwarden 을 노출하지않고 tailscale을 연결했을만때 도메인으로 접속할 수 있게만들수 있습니다.

 

Caddy 구성의 경우 아래글을 먼저 진행해주시면됩니다. 

 

Local 서비스 연동를 위한 Caddy 서버 구성하기 안녕하세요. 달소입니다. 본래 서비스용으로는 NPMplus를 쓰고있는데 로컬 서비스의 인증서를 쓰기에는 비효율적이라고 Caddy로 구성해보려고합니다. 목적은 내부에 tailscale로 서비스를 구성하는것들에 대해서 사설... by 달소 from 서버포럼

 

구성환경

tailscale

Ubuntu 24.04 LTS

Caddy

Docker로 구성된 vaultwarden

 

Magic DNS 확인하기 

먼저 tailscale에서 Magic DNS를 활성화 해주고 사용할 수 있는 도메인을 체크해주세요.

매직 DNS는 tailscale에 연결되었을때 기기의 이름을 고유한 도메인과 붙여서 사용할 수 있게 해줍니다.

 

 

Tailscale Sign in or Sign in with Google Sign in with Microsoft Sign in with GitHub Sign in with Apple Sign in with a passkey Error from LOGIN.TAILSCALE.COM

 

여기서 tailbc61.ts.net은 저의 tailscale 고유의 도메인이라고 보시면됩니다.

 

만약 기기 이름이 mgt라면

mgt.tailbc61.ts.net을 호출하면 해당 mgt 서버로의 통신이 이뤄집니다.

 

image.png.jpg

 

Caddy 설정하기 

이제 Caddy에서 간단하게 컨피그만 넣어주면 됩니다.

저같은경우 mgt서버에서 여러가지 서비스를 구동하다보니 도메인 하나당 서비스가 아닌 뒤에 path로 구별해주려고합니다.

예를들어 mgt 서버의 vaultwarden 이면

mgt.[magicdns]/pass 와 같이요.

 

Caddy 설정파일은 /etc/caddy/Caddyfile입니다.

 

아래처럼 설정값을 넣어주면 됩니다.

뭐 말그대로 해당 도메인의 path로 넘어오면 내부의 8088 포트로 리버스프록시를 해준다는 의미입니다.

여기서 8088은 당연히 vaultwarden이구요 ㅎㅎ 

 

image.png.jpg

 

여기까지 설정해주고 

 

caddy start --config /etc/caddy/Caddyfile 나 

caddy reload --config /etc/caddy/Caddyfile 로 서비스를 다시 불러와주시면됩니다.

 

image.png.jpg

 

그리고 tailscale이 연결된상태로 mgt.tailbc61.ts.net/pass/ 로 연결해주면

 

인증서가있는 내부도메인으로 잘 붙어집니다.

마찬가지로 확장프로그램도 이렇게 연결해주시면됩니다.

image.png.jpg

 

 

참고

MagicDNS · Tailscale Docs Find out how to automatically register DNS names for devices in your Tailscale network. from TAILSCALE

 

Caddy certificates on Tailscale · Tailscale Docs Learn how to use Caddy certificates on Tailscale. from TAILSCALE