I would read layman discussions about why this (by context?) is good.
Selfhosted
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:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
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.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
This could go a long way towards fighting online censorship. One less issue when an authoritarian overreach gets your domain seized. Pretty awesome.
I never understood why we don't use IP certificates to encrypt the domain with SNI.
What do you mean?
In much simpler terms:
Think of an IP address like a street address. 192 My Street.
There might be multiple businesses at one street address. In real life we address them with things like 1/192 My Street and 2/192 My Street, but there's no direct parallel to that in computer networks. Instead, what we do is more like directing your letter to say "Business A c/o 192 My Street". That's what SNI does.
Because we have to write all of that on the outside of the envelope, everyone gets to see that we're communicating with Business A. But what if one of the businesses at 192 My Street is highly sensitive and we'd rather people didn't know we were communicating with them? @bjoern_[email protected]'s proposal is basically like if you put the "Business A" part inside the envelope, so the mailman (and anyone who sees the letter on the way) only see that it's going to 192 My Street. Then the front room at that address could open the envelope and see that the ultimate destination is Business A, and pass it along to them.
There's Encrypted Client Hello, supported by major browsers that does the SNI encryption. It's starting to be fairly widely supported.
192 My Street
Except that with street addresses there is such a lack of inconsistency on how they work and are written that it is funny
Currently before establishing an encrypted connection to a webserver the domain is sent to the webserver unencrypted so that the server can choose the appropriate certificate to use for encryption. That is called SNI, Server Name Indication.
Of course that's a privacy risk. There are finally protocols to fix this but they aren't very widespread and depend on DNS over HTTPS.
I think issuing certificates based on the IP and sending the domain name encrypted based on that certificate could have fixed this issue ages ago.
F I N A L L Y
Now tell me it supports IPv6 and I'll be the happiest man alive
Maybe I'm not understanding it but I can't see what I would use this for due to the 6 day issue period. Bringing a NAS up to copy data for a couple days is the only real use case I find for home users.
Because even if you pay for a static external IP from your ISP, this doesn't support using such for longer than that period right?
Let's Encrypt is meant yo be used with automated certificate renewal using the ACME protocol. There are many clients for this. Both standalone and built into e.g. Caddy, Traefik and other software that does SSL termination.
So this specific concern doesn't really make sense. But that doesn't mean I really see a use case for it either, since it usually makes more sense to access resources via a host name.
Thanks! I'll look into that, this could be useful for me then after all. This is why it's always good to ask questions
Can't it automatically be renewed?
Not sure, I just saw the 6 day thing in the article, that would be nice though
Edit: vorpal says you should be able to using ACME https://programming.dev/comment/17987211
Yay!
Yay!
Would this work with a public dynamic DNS?
With dynamic DNS? Yeah it always has, as long as you can host a http server.
With a dynamic IP? It should do, the certs are only valid for 6 days for that reason.
Couldn't this prove very troublesome in combination with carrier grade nat?
They will require the requester to prove they control the standard http(s) ports, which isn't possible with any nat.
It won't work for such users, but also wouldn't enable any sort of false claims over a shared IP.
I don't see how? Normal HTTP/TLS validation would still apply so you'd need port forwarding. You can't host anything on the CGNAT IP so you can't pass validation and they won't issue you a cert.
You can totally host something on carrier-grade NAT using techniques like NAT hole punching.
You don't get control of the incoming port that way. For LetsEncrypt to issue a certificate primarily intended for HTTPS, they will check that the HTTP server on that IP is owned by the requesting party. That has to live on port 80, which you can't forward on CGNAT.