Frizz

Any reverse proxy

The rule is the same for Caddy, nginx, ngrok or anything else: terminate TLS wherever you like, proxy to the board’s loopback port, and pass the public origin to Frizz.

  press R, choose Something else

  Origin  https://whatever-that-proxy-serves

Frizz checks that a request’s Host matches the origin it was given, so the value has to be the exact origin a browser sees — scheme included, no trailing slash.

Caddy

A two-line Caddyfile, which gets its own certificate:

board.example.com {
  reverse_proxy 127.0.0.1:9393
}

What the proxy has to carry

That last one is the whole security boundary. If your proxy cannot preserve the Host, do not put the board on the internet behind it.