this post was submitted on 28 Oct 2023
2 points (100.0% liked)
Self-Hosted Main
511 readers
1 users here now
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.
For Example
- Service: Dropbox - Alternative: Nextcloud
- Service: Google Reader - Alternative: Tiny Tiny RSS
- Service: Blogger - Alternative: WordPress
We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers.
Useful Lists
- Awesome-Selfhosted List of Software
- Awesome-Sysadmin List of Software
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
For a proper trusted certificate you’re best to have a domain. That doesn’t mean you need to expose anything to the internet. If you have Traefik or HAproxy they can auto issue certificates from LetsEncrypt with the right config. Just don’t allow external access to those front ends. I have the same sort of thing setup with pfsense and the site is internal only via HAproxy to the docker container. Works great.
Really? How do you do this? Do you just not forward any of the ports on your router? If that's the case then I'll go ahead and purchase a domain and get started.
Btw if you want a really cheap domain search 1.111B class XYZ domains, these consist on [6to8numbers.xyz] and cost less than a USD a year
Another option which I've used in the past is that you can set your domain up with Cloudflare and then either utilize a Tunnel, or restrict the domain to your own IP address and it will block all external traffic. I've utilized it for several projects and it has always worked flawlessly. Haven't tried the Traefik / HAproxy method.
But Certbot / LetsEncrypt is extremely easy to use.
Let's Encrypt uses what is called "ACME protocol" for proof of owner when generating certificates.
There are various challenges they use to prove ownership of the domain. The default one just places a special file on your web server that Let's Encrypt then reads.
However there are a number of different types of challenges.
If you don't want to expose anything to the internet then a common one to use is 'DNS Challenge'.
With DNS challenge the certbot uses your DNS server/provider's API to update DNS records as a response to the challenge. Let's Encrypt reads the special TXT response and verifies that you own the domain.
So to use this you need two things:
A DNS domain
A DNS domain provider that has a API that certbot can use.
AWS Route53 is a good one to use. But I have used Digital Ocean's free DNS Service, Bind servers, Njalla, and other things. Most commonly used DNS providers are supported one way or the other.
You can also get fancy and designate sub domains or other domains to respond to the challenges. So if your DNS is locked down you can still add a record to point to a different one on a different server.
The big win for going with DNS Challenge is that you can do wildcard certificates.
So say you are setting up a reverse proxy that will serve vault.home.example.com, fileshare.home.example.com, torrent.home.example.com, and a bunch of others... all you need to do is configure your reverse proxy with a single *.home.example.com cert and it'll handle anything you throw at it.
You can't do that with the normal http challenge. Which makes doing the DNS challenge worth it, IMO, even if you do have a public-facing web server.