I’ve been downloading SSL certificates from my domain provider, using cat to join them together to make the fullchain.pem, uploading them to the server, and myself adding a 90 day calendar reminder. Every time I did this I’d think I should find out about this Certbot thing.

Well, I finally got around to it, and it was one of those jobs which turns out to be so easy you wish you’d done it ages ago.

The install was simple (I’m using nginx/ubuntu).

It scans up your server conf files to see which sites are being served, asks you a couple of questions, obtains the Let’s Encrypt certificate for them, installs it, updates your conf files to use it, and sets up a cron job to check if it’s time to renew the certificate, which it will also do auto-magically.

I was so pleased with it I made a donation to the EFF for it, then I started to think about how amazingly useful Let’s Encrypt is, and gave them one too. It’s just a really good time to be in this hobby.

I highly recommend Certbot. If you’ve been putting this off, or only just hearing about it, make some time for it.

Is it possible to change the elliptic curve yet or does it still throw suspicious errors

I run all of my containerised services behind Traefik which does LetsEncrypt for me as well as handles fun stuff like routing to different containers / reverse proxy. It’s fantastic if you want to take your new knowledge to the next level!

@dan@upvote.au
link
fedilink
English
11Y

Traefik sounds interesting. I’m old-school so I still configure Nginx manually. I’ve got a bunch of snippets in /etc/nginx/snippets/ so a lot of the configuration is just importing the right snippets.

On the other hand, there’s value in using the same software for both reverse proxies and regular websites. There’s only one configuration language to learn. I’ve been using Nginx for over 10 years so I’m very familiar with configuring it.

@thirdBreakfast@lemmy.world
creator
link
fedilink
English
21Y

Thanks, I do, and I’ve added a couple from the suggestions here. Caddy and Traefik are both on my list of things to investigate now.

Here’s my config to get you started, I’ve got a bunch of services configured to work with it on my GitLab, too!

https://gitlab.com/Matt.Jolly/traefik-grafana-prometheus-docker

genuineparts
link
fedilink
English
301Y

You know what, thanks for making this post. I have used Letsencrypt and Certbot for years now, i’d never have thought about donating, but since you said that I just made a donation.

@thirdBreakfast@lemmy.world
creator
link
fedilink
English
61Y

Good on you. For anyone else inspired, you can support Certbot here, and Let’s Encrypt here.

I promise I don’t work for them - I was just struck by how phenomenally handy they are.

Downloading certificates from your domain provider is often a security problem. Only you are supposed to know your private keys.

@SheeEttin@lemmy.world
link
fedilink
English
301Y

You’re supposed to upload the CSR, not the key.

But yeah, if they do all the generation themselves, they also have the private key and could easily break into anything the cert is used for.

@thirdBreakfast@lemmy.world
creator
link
fedilink
English
21Y

Good point. Although they are also hosting my DNS, so they can take the site over anytime they want anyway?

SirNuke
link
fedilink
81Y

They could hijack your site at any time, but with a copy of your live private certs they (or more likely whatever third party that will invariably breach your domain provider) can decrypt your otherwise secure traffic.

I don’t think there’s significant real tangible risk since who cares about your private selfhosted services and I’d be more worried about the domain being hijacked, and really any sort of network breach is probably interested in finding delicious credit card numbers and passwords and crypto private keys to munch on. If someone got into my network, spying on my Jellyfin streaming isn’t what I’m going to be worried about.

But it is why CSRs are used.

@thirdBreakfast@lemmy.world
creator
link
fedilink
English
21Y

Thanks - I hadn’t considered the traffic decryption.

@steltek@lemm.ee
link
fedilink
English
81Y

I’m obviously a fan of LE but a simple self-hosted option with a custom CA would be great for local machines:

  • I don’t want every Raspberry Pi/laptop/temp VM/whatever published into the cert transparency record
  • Configuring the router to forward every local hostname to the machine’s .well-known would be awful (if my ISP even allowed port 80)
  • Exposing local machines to the Internet is an unnecessary degradation of security

In theory you could generate a wildcard to a domain then use it.

Use DNS verification and wildcard certs and all this goes away.

@dan@upvote.au
link
fedilink
English
5
edit-2
1Y

+1

I use acme-dns and it works very well. It’s a basic DNS server that only serves the Let’s Encrypt DNS challenges - it only allows clients to create TXT records, in the exact format that Let’s Encrypt needs. This is great for security as you don’t have to give Certbot/whatever full access to your main DNS servers.

Let’s Encrypt followers CNAMEs which is how this works - you CNAME the _acme-challenge subdomain to point to a subdomain hosted by the acme-dns server.

Let’s Encrypt is fine with IPv6-only DNS servers, so I have acme-dns running on one of my VPSes only over IPv6 (since I’m using the IPv4 for my regular DNS server). Good VPS providers provide a /64 IPv6 range.

@skankhunt42@lemmy.ca
link
fedilink
English
11Y

This… Is what I’ve wanted but never looked up if it was possible. Thank you. I’ve been manually renewing my cert for ages…

@thirdBreakfast@lemmy.world
creator
link
fedilink
English
11Y

My use case is for domains hosted on a VPS rather than my home server-hosted stuff. None of that is exposed to the internet except via Tailnet. I’ve got a domain saved up for that but haven’t figured it out how to do it since the CA can’t access my server to verify it. I have the feeling the answer is going to be ten more commenters telling me to check out Caddy.

SirNuke
link
fedilink
11Y

It’s easy* to setup Hashicorp Vault with your own CA and do automated cert generation and rotation, if you are willing to integrate everything into Vault and install your root CA everywhere. (*not really harder than any other Vault setup, but yaknow). I may go down this route eventually since I don’t think a device I don’t control has ever accessed anything I selfhost, or ever will.

I have a wildcard subdomain pointing to my public IP, and forward port 80 to an LXC container with certbot. Port 80 appears closed outside the brief window when certbot is renewing certs. Inside my network I have my PiHole configured to return the local IP for each service.

Nothing exposed to the internet at all. There is a record of my hostnames on Let’s Encrypt but not concerned if someone will, say, deduce apollo-idrac is the iDRAC service for a Dell rackmount server called apollo and the other Greek/Roman gods are VMs on it. Seemed like a house of cards that would never work reliably, but three odd years later I only have issues if a DNS resolver insists on bypassing my PiHole. And that DNS resolver is SystemD-ResolveD which should crawl back into whatever hellhole it came out of.

@kill_dash_nine@lemm.ee
link
fedilink
English
31Y

I also use acme.sh. It has worked great for me and was dead simple to use. Super flexible on what it can do from just renewing the certs to web server integration. Love the simple to use hooks available too.

@dan@upvote.au
link
fedilink
English
11Y

Certbot has hooks too.

@gelframe@lemm.ee
link
fedilink
English
91Y

This is what I use because fuck snap. I used certbot to do wild card certs but once they went to snap I quit.

@drkt@feddit.dk
link
fedilink
English
31Y

That’s exactly the same reason I dropped certbot, haha

@d_k_bo@feddit.de
link
fedilink
English
11Y

If you don’t like snap, maybe you should try another distro instead (I went to fedora because I was annnoyed of snaps).

This seems like free hate as you can use certbot without snap without any problems. Imagine stopping using Firefox because of the same reason for example

@dan@upvote.au
link
fedilink
English
5
edit-2
1Y

On Debian you can apt install certbot and it’s just a regular Debian package with Python files inside. Are you on Ubuntu? I know they’ve been pushing snaps for a while.

@anyhow2503@lemmy.world
link
fedilink
English
11Y

The certbot authors tried really hard at one point to make snap the only available distribution mechanism for their application and for some time the version that Fedora packaged would display some weird deprecation warning and urge you to use the snap version.

@dan@upvote.au
link
fedilink
English
11Y

Ahh… That’s weird. I’ve never tried Snap, but I think I’d use Docker before I use Snap.

@Unsealed9041@lemmy.ca
link
fedilink
English
141Y

If you like certbot, you should check out Caddy. Fully auto tls so long as the server resolves to a set domain name. Caddy-docker-proxy is pure magic with docker containers.

@MashedTech@lemmy.world
link
fedilink
English
31Y

Yes it is, I love using cert-manager on my list cluster.

@BoneALisa@lemm.ee
link
fedilink
English
21Y

Just setup cert-manager for a client at our work thats moving to a Kubernetes cluster. Setup the ACME issuer using DNS Cloudflare challenges, its awesome how simple it is to even get internal hostnames with certs.

@killwill@feddit.nl
link
fedilink
English
81Y

I love the docker / traefik setup we have at work. We get tls certified domains for any docker container we run with just a few lines of yml. I can spin up a site in seconds.

@Decronym@lemmy.decronym.xyz
bot account
link
fedilink
English
17
edit-2
1Y

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

Fewer Letters More Letters
DNS Domain Name Service/System
HTTP Hypertext Transfer Protocol, the Web
IP Internet Protocol
LXC Linux Containers
PiHole Network-wide ad-blocker (DNS sinkhole)
SSL Secure Sockets Layer, for transparent encryption
TLS Transport Layer Security, supersedes SSL
VPS Virtual Private Server (opposed to shared hosting)
nginx Popular HTTP server

7 acronyms in this thread; the most compressed thread commented on today has 6 acronyms.

[Thread #120 for this sub, first seen 8th Sep 2023, 16:25] [FAQ] [Full list] [Contact] [Source code]

tekeous
link
fedilink
English
601Y

Wait until you find out about Caddy

Or traefik

traefik worked for me once. Then I tried to use it again in a different and I didn’t manage to get it to run. Caddy is much simpler. Traefik is more powerful but just for Let’s Encrypt I would go with Caddy.

chandz05
link
fedilink
English
31Y

Or swag ;)

Or Nginx Proxy Manager.

So many tools. Yet not enough time.

clb92
link
fedilink
English
31Y

I took a look at Traefik once and the complexity scared me away. Caddy is my cup of tea with one simple config file.

Mike
link
fedilink
01Y

@clb92 @Appoxo …but traefik’s autoconfigure from labels on your services in the compose file is so nice.

clb92
link
fedilink
English
21Y

I don’t use compose.

Wait until you hear about mod_md

CubitOom
link
fedilink
English
141Y

Wait till you guys use cert-manager on a kubernetes cluster

@SheeEttin@lemmy.world
link
fedilink
English
141Y

Wait until you stand up your own CA and issue certs with multi-year validity so they don’t have to be renewed more often than you rebuild everything anyway

At least until you try to access stuff on a Pixel phone which doesn’t let you install CA certs any more 😞

Having certificates that are valid for over a year is contra-productive, as when they get in to the wrong hands they might still be valid for a year until they naturally run out of time. The reason LetsEncrypt issues only 90d valid certificates is not to annoy you, but save your ass once someone obtains your certificates.

@dan@upvote.au
link
fedilink
English
11Y

Exactly this. The CA/B forum (who make rules about TLS certificates that all the providers follow) are actively trying to reduce certificate validity periods. 2-3 years ago, they reduced the maximum duration for TLS certificates to 13 months. It’s likely they’ll go even lower in the future.

My understanding is that they want the entire industry to move towards a Let’s Encrypt style system where renewal is fully automated and thus there’s minimal overhead to renewing more frequently. We’re not quite there yet.

Which they will, because we are all bad at security.

@FrederikNJS@lemm.ee
link
fedilink
English
51Y

While shorter lived certs certainly improve the general security, certificate revocation lists are what you need if a cert gets compromised.

They don’t work in practice, no modern browser actively queries any revocation DBs. It’s just much more efficient to let something expire sooner than keep track of all lost somethings.

@StefanT@lemmy.world
link
fedilink
English
2
edit-2
1Y

I had no problem to install my CA on my Pixel (Android 13). I read that this was not possible for some time but Google changed it.

@LufyCZ@lemmy.world
link
fedilink
English
11Y

I’ve heard something about it changing with A14

@dan@upvote.au
link
fedilink
English
11Y

That’s a lot of work just to avoid a renewal process that’s fully automated. Seems counter productive.

@FrederikNJS@lemm.ee
link
fedilink
English
51Y

Wait until you set up cert-manager to issue both Let’s Encrypt certificates, as well as generating your own CA and issuing certs from your own CA where you can set the validity however want.

@SpaceCadet@sopuli.xyz
link
fedilink
English
11Y

Pixel phone which doesn’t let you install CA certs any more

Is that something new? I can still install CA certs on my Pixel 6. It does give a scary warning, but you can just click through it.

WardPearce
link
fedilink
English
271Y

Certbot is great when using Nginx (or Apache2), but if you can use a different engine. Its worthwhile checking out Caddy!

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
  • 279 users / day
  • 589 users / week
  • 1.34K users / month
  • 4.55K users / 6 months
  • 1 subscriber
  • 3.47K Posts
  • 69.4K Comments
  • Modlog