I’m curious what the benefits are of paying for SSL certificates vs using a free provider such as letsencrypt.
What exactly are you trusting a cert provider with and what are the security implications? What attack vectors do you open yourself up to when trusting a certificate authority with your websites’ certificates?
In what way could it benefit security and/or privacy to utilize a paid service?
And finally, which paid SSL providers are considered trustworthy?
I know Digicert is a big player, but their prices are insane. Comodo seems like a good affordable option, but is it a trustworthy company?
AFAIK, the only reason not to use Letsencrypt are when you are not able to automate the process to change the certificate.
As the paid certificates are valid for 12 month, you have to change them less often than a letsencrypt certificate.
At work, we pay something like 30-50€ for a certificate for a year. As changing certificates costs, it is more economical to buy a certificate.
But generally, it is best to use letsencrypt when you can automate the process (e.g. with nginx).
As for the question of trust: The process of issuing certificates is done in a way that the certificate authority never has access to your private key. You don’t trust the CA with anything (except your payment data maybe).
PSA: All public certificates (private internal certificates won’t be affected) will have a lifetime of only 90 days soon. Google is planning to reduce their lifetime in 2024 but considering that they haven’t given an update on this since early this year, I doubt it will happen this year.
But it will happen soon.
This will be a pain in the ass for my workplace because we primarily use Digicert and manually renewing certificates every 90 days is just impossible for use. We are currently looking into a way to switch to letsencrypt or similar.
You’re right, Google released their vision in 2023, here is what it says regarding lifespan:
a reduction of TLS server authentication subscriber certificate maximum validity from 398 days to 90 days. Reducing certificate lifetime encourages automation and the adoption of practices that will drive the ecosystem away from baroque, time-consuming, and error-prone issuance processes. These changes will allow for faster adoption of emerging security capabilities and best practices, and promote the agility required to transition the ecosystem to quantum-resistant algorithms quickly. Decreasing certificate lifetime will also reduce ecosystem reliance on “broken” revocation checking solutions that cannot fail-closed and, in turn, offer incomplete protection. Additionally, shorter-lived certificates will decrease the impact of unexpected Certificate Transparency Log disqualifications.
The background is that certificate revocation is a broken system and having short lived certificates makes the problem go away. You don’t need to worry about how to tell people that some certificate is bad if it’s only valid for a few days.
Ideally, certificates would only be valid for a few days, it should be automated anyway. This has other downsides as I can imagine, like creation of more traffic. My self signed CA for my home LAN has 4 days as standard, and it works perfectly fine.
Yeah, absolutely!
I actually like the change.
It’s just that it will create a lot of work for us (especially for me and my colleague) short term. I would very much appreciate it if Google actually bothered to give an exact timeline (optimally a few months or a year in advance).
There are more reasons, as LetsEncrypt might be more restrictive on what you can get (for example, you cant get a certificate for an IP address from them). But, as 99.99% of usecases do not require anything like that, go with letsencrypt until you know of a reason not to.
No proper CA should give out a certificate for an IP, that’s a no go by the common rules.
I see why automatically giving them out (like in ACME) would be a bad idea, but other than that, why not? Even https://1.1.1.1 has a DigiCert cert.
you can automate the process (e.g. with nginx).
How does nginx automate that?
There’s a certbot addon which uses nginx directly to renew the certificate (so you don’t need to stop the web server to renew). If you install the addon you just use the same certbot commands but with --nginx instead and it will perform the actions without interfering with web server operation.
You just then make sure the cron job to renew also includes --nginx and you’re done.
Oh, that… I think i’m using it but it seems.to expect a response from 80 when all I have there is a redirect to 443.
I thought you meant an nginx plugin.
The person isn’t talking about automating being difficult for a hosted website. They’re talking about a third party system that doesn’t give you an easy way to automate, just a web gui for uploading a cert. For example, our WAP interface or our on-premise ERP don’t offer a way to automate. Sure, we could probably create code to automate it and run the risk it breaks after a vendor update. It’s easier to pay for a 12 month cert and do it manually.
Same, though I’m using acme.sh and DNS-01. (had to go look at the script that triggers it to remember, lol)
I check the log file my update script writes every few months just to be sure nothings screwy, but I’ve had 0 issues in 7 years of using LE now.
A paid cert isn’t worth it.
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
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.
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.
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.