Why?
Let's encrypt is free and secure. There is no good reason not to use it.
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:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Why?
Let's encrypt is free and secure. There is no good reason not to use it.
I think their question is, what do you mean by "secure"? Because as the saying goes for internet services: usually, if you're not paying, you're not the customer, you're the product.
Let's Encrypt is a non profit largely started by the Electronic freedom foundation (eff) to bring https to the internet. Before it was very trivial to spy and modify web traffic but now that https is everywhere it is much harder to do if not impossible. They are also the ones who pushed for all major browsers to adopt https only. In all major browsers you should get a page warning you that a site uses http instead of https. It is a very bad idea to use http in 2024 as it allows anyone along the line to modify traffic and to see what pages you are viewing.
I still use http a lot for internal stuff running in my own network. There's no spying there.. I hope ... And ssl for local network only services is a total pita.
So I really hope browsers won't adapt https only
I do to. However, that's the exception. I hope you aren't running http over the public internet as that's a massive security issue
A lot of paid cert providers were not so great before LE put the spotlight on the issue; it was more of a scheme to extract money from operators who couldn't afford to not offer TLS / SSL. https://bugzilla.mozilla.org/show_bug.cgi?id=647959 was a famous post that made fun of / criticized the system before LE. This hurt security, and if not free, LE wouldn't have worked.
Yeah but also even when you’re paying, you’re still the product.
Worked as a sysadmin for years dealing with all kinds of certificates. Liek others have said if you can't automate the process a paid certificate buys you 12 months at a time in validity. Also wildcard certificates are more difficult to do automated with let's encrypt. If you want EV certificates (where the cert company actually calls you up and verifies you're the company you claim to be) you also need to go the paid route
In my experience trustworthyness of certs is not an issue with LE. I sometimes check websites certs and of I see they're LE I'm more like "Good for them"
Also wildcard certificates are more difficult to do automated with let's encrypt.
They are trivial with a non-garbage domain provider.
If you want EV certificates (where the cert company actually calls you up and verifies you're the company you claim to be) you also need to go the paid route
The process however isn't as secure as one might think: https://cyberscoop.com/easy-fake-extended-validation-certificates-research-shows/
In my experience trustworthyness of certs is not an issue with LE. I sometimes check websites certs and of I see they're LE I'm more like "Good for them"
Basically, am LE cert says "we were able to verify that the operator of this service you're attempting to use controls (parts of) the domain it claims to be part of". Nothing more or less. Which in most cases is enough so that you can secure the connection. It's possibly even a stronger guarantee than some sketchy cert providers provided in the past which was like "we were able to verify that someone sent us money".
Having a non-garbage domain provider can be a luxury. I used to work at a place where we were paying boatloads of money for certificates from Sectigo for internal services, and they were charging us extra per additional name and even more if we wanted a wildcard, even though it didn't cost them anything to include those options. Getting IT to set up the DNS records for Let's Encrypt DNS verification was never going to happen.
The main benefits to paying for certs are
The only thing that matters to most people is that they don't get cert errors going to/using a web site, or installing software. Any CA that is in the browsers, OS and various language trust stores is the same to that effect.
The rules for inclusion in the browsers trust stores are strict (many of the Linux distros and language trust stores just use the Mozilla cert set), which is where the trust comes from.
Which CA provider you choose doesn't change your potential attack surface. The question on attack surface seems like it might come from lacking understanding of how certs and signing work.
A cert has 2 parts public cert and private key, CAs sign your sites public cert with their private key, they never have or need your private key. Public certs can be used to verify something was signed by the private key. Public certs can be used to encrypt data such that only the private key can decrypt it.
OP's security concern is valid. Different CAs may differ in the challenges used to verify you to be the domain owner. Using something that you could crack may lead to an attacker's public key being certified instead.
This could for example be the case with HTTPS verification (place a file with a specific content accessible through your URL) if the website has lacking input sanitization and/or creates files with the user's input at an unfortunate location that collides with the challenge.
This attack vector might be far-fetched, but there can certainly be differences between different signing authorities.
But even if you use GoMommy extra super duper triple snake oil security checked ssl cert, if I trick LetsEncrypt to sign a key for that domain I still have a valid cert for your site.
You're right, my bad.
Certificate pinning?
Also all let's encrypt certs are public. So if someone malicious gets a cert for your domain, you can notice.
(Thats also why it may be a bad idea to use that for secretButPublicStuff.Yourdomain.com certificate transparency logs are a great way to find attack surface.)
edit oh certificate pinning has been deprecated in favor of checking transparency logs.
If you are just self hosting for your own use, just stick with letsencrypt or self signed certificates.
The paid certificates are for businesses where the users need to trust the certificate. They usually come with warranties and identity verification, which is important if you are accepting payments through your website, but it's just a waste of money for personal use.
There is really no reason to use self-signed anymore. I use Let's Encrypt even for 10.0.0.0/8 addresses.
Except for the learning process and if you want your self-signed local domains in your lan !
https://jellyfin.homelab.domain
is easier to access than IP addresses.
In that case, i recommend step-ca, which is a certificate authority server with acme support anyone can self host. The setup took a while but it's been running for months now without problems for me.
Yeaaah I already played a bit arround with step-ca ! Right now a make a mini-CA with openssl.
When I get more comfortable with how everything works together I will surely give step-ca another try.
I found open-ssl to be much harder to use. Do you just manually make new certificates with the CA in CLI?
I've been doing home networking for many years now and the public Domain + Cloudflare DNS + Let's Encrypt is the easiest it's ever been.
With paid certificates you can target ancient and unsupported operating systems like windows XP and android 2, letsencrypt is relatively recent and it's not present in the root certificates of those systems
It actually seems more like a windows 10 compatibility dilemma for developers. You can support older systems but it would require some effort. The problem is not the absence of some specific certificates, but the absence of newer ciphers altogether.
This does give security but also removes backwards compatibility with some clients that might be important for some websites.
At some point it's good to let things die
The point of paid SSL at this stage in the game are the higher tiers of verification. Instead of just verifying that you own the domain, you can verify that you are who you say you are. These are called Extended Validation and Organizational Validation certificates. This has historically been desirable by businesses. It used to be that these higher tier certs would not only give you a lock icon in the address bar of a web browser, but also a little blurb confirming your organization is legit. Not sure if this is still the case though. You will see the extended validation when you check the sites certificate though for sure.
As far as encryption and security, there’s no difference. Also side note, the Comodo brand still technically exists but it was bought by Sectigo like 7 years ago.
I'm pretty sure browsers stopped distinguishing EV certificates years ago.
I think you are right but I wasn’t sure. Like technically you’ll still see the details if you open the certificate but… who’s doing that?
Certain unnamed companies cough~google~ doesn’t like to trust Let Encrypt its definitely not an abuse of an illegal monopoly they have good reasons I promise.
But the whole point behind using a signed certificate is that other people can look at you and immediately know you are who you say you are if a company doesn’t trust you it doesn’t really matter what the motivation is you might as well use a self signed certificate.
Paid certificates have the money to make sure everyone trusts them and has a reputation to maintain so are more likely to defend a legitimate complaint.
99.999% of individuals it simply doesn’t matter(although you might have to look into it if you’re using android apps) but to a company the little bit that certification costs is worth every penny.
Google is on of the biggest Lets Encrypt sponsors and where is LE not trusted?
Most if the internet uses let's encrypt. You are using it right now