I’ve been researching different ways to expose Docker containers to the internet. I have three services I want to expose: Jellyfin, Omnivore (Read-it-later app), and Overseerr.

I’ve come across lots of suggestions, like using Nginx with Cloudflared, but some people mention that streaming media goes against Cloudflared tunnel TOS, and instead recommend Tailscale, or Traefik, or setting up a WireGuard VPN, or using Nginx with a WireGuard VPN.

The amount of conflicting advice has left me confused. So, what would be the best approach to securely expose these containers?

@notfromhere@lemmy.ml
link
fedilink
English
516d
  1. Never host anything that is externally accessible
  2. If you have to, put it behind a VPN (OVPN, Wireguard, IPSec, Tailscale, etc.)
  3. Certificate based authentication is preferred for VPN tunnels
  4. Always TLS encrypt your actual endpoints. Private CAs are most secure but a pain in the ass. Let’s Encrypt is very simple to set up in most cases.

Just my 2 cents.

slazer2au
link
fedilink
English
116d

How is a private CA more secure then an offline CA with cross signed intermediate signing subCA?

@notfromhere@lemmy.ml
link
fedilink
English
316d

You’ll have to explain that one to me.

slazer2au
link
fedilink
English
116d

A public CA (Let’s Encrypt, Komodo, GoDaddy, etc) don’t actually sign certificates with their root CA certificate. The root CA creates a subCA (Or signing CA) that actually generates the certificates and the system holding the private keys of the root certificate is shutdown to prevent access but is brought back online every so often to update the revocation list.

You said a private CA is more secure so I am wondering how that is?

@notfromhere@lemmy.ml
link
fedilink
English
116d

Because a private CA allows you to create a certificate and nobody else has the ability to create certificates unless you give them the keys or a signing CA. With Let’s Encrypt, you are trusting every major certificate authority to not create a cert on your domain; coupled with DNS poisoning means you would end up on a legit-looking but counterfeit website of yours.

slazer2au
link
fedilink
English
116d

Nothing is stopping me from making a certificate from my offline CA for your domain.

Even if you don’t trust the certificate the traffic is still encrypted.

@notfromhere@lemmy.ml
link
fedilink
English
115d

Yea that’s the whole trusting trust thing. You can theoretically set up hour browser to only trust your private CA and not trust any of the publicly trusted CAs. Depends on your threat model I suppose.

Create a post

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

Rules:

  1. Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

  • 1 user online
  • 112 users / day
  • 443 users / week
  • 1.37K users / month
  • 3.84K users / 6 months
  • 1 subscriber
  • 4.09K Posts
  • 84.3K Comments
  • Modlog