this post was submitted on 12 Sep 2024
105 points (97.3% liked)

Selfhosted

40296 readers
322 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.

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!

founded 1 year ago
MODERATORS
 

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?

top 50 comments
sorted by: hot top controversial new old
[–] cron@feddit.org 56 points 2 months ago (4 children)

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).

[–] lud@lemm.ee 16 points 2 months ago (3 children)

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.

[–] cron@feddit.org 12 points 2 months ago* (last edited 2 months ago)

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.

load more comments (2 replies)
[–] WIPocket@lemmy.world 8 points 2 months ago (2 children)

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.

load more comments (2 replies)
[–] 0x0@programming.dev 3 points 2 months ago (3 children)

you can automate the process (e.g. with nginx).

How does nginx automate that?

[–] r00ty@kbin.life 9 points 2 months ago (3 children)

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.

load more comments (3 replies)
load more comments (2 replies)
load more comments (1 replies)
[–] possiblylinux127@lemmy.zip 33 points 2 months ago (1 children)

Why?

Let's encrypt is free and secure. There is no good reason not to use it.

[–] teawrecks@sopuli.xyz 5 points 2 months ago (3 children)

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.

[–] possiblylinux127@lemmy.zip 9 points 2 months ago* (last edited 2 months ago) (2 children)

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.

load more comments (2 replies)
[–] Laser@feddit.org 6 points 2 months ago* (last edited 2 months ago)

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.

[–] EncryptKeeper@lemmy.world 4 points 2 months ago

Yeah but also even when you’re paying, you’re still the product.

[–] cmnybo@discuss.tchncs.de 20 points 2 months ago (1 children)

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.

[–] state_electrician@discuss.tchncs.de 4 points 2 months ago (1 children)

There is really no reason to use self-signed anymore. I use Let's Encrypt even for 10.0.0.0/8 addresses.

[–] N0x0n@lemmy.ml 3 points 2 months ago (2 children)

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.

[–] PlexSheep@infosec.pub 4 points 2 months ago (2 children)

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.

load more comments (2 replies)
[–] state_electrician@discuss.tchncs.de 3 points 2 months ago (2 children)

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.

load more comments (2 replies)
[–] Moonrise2473@feddit.it 19 points 2 months ago (1 children)

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

[–] rdri@lemmy.world 3 points 2 months ago (1 children)

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.

[–] PlexSheep@infosec.pub 4 points 2 months ago

At some point it's good to let things die

[–] somenonewho@feddit.org 15 points 2 months ago (1 children)

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"

[–] Laser@feddit.org 11 points 2 months ago (2 children)

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".

load more comments (2 replies)
[–] JollyGreen_sasquatch@sh.itjust.works 10 points 2 months ago (4 children)

The main benefits to paying for certs are

  • as many said, getting more than 90 days validity for certs that are harder to rotate, or the automation hasn't been done.
  • higher rate limits for issuing and renewing certs, you can ask letsencrypt to up limits, but you can still hit them.
  • you can get certs for things other than web sites, ie code signing.

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.

load more comments (4 replies)
[–] hedgehog@ttrpg.network 10 points 2 months ago (6 children)

What exactly are you trusting a cert provider with and what are the security implications?

End users trust the cert provider. The cert provider has a process that they use to determine if they can trust you.

What attack vectors do you open yourself up to when trusting a certificate authority with your websites' certificates?

You’re not really trusting them with your certificates. You don’t give them your private key or anything like that, and the certs are visible to anyone navigating to your website.

Your new vulnerabilities are basically limited to what you do for them - any changes you make to your domain’s DNS config, or anything you host, etc. - and depend on that introducing a vulnerability of its own. You also open a new phishing attack vector, where someone might contact you, posing as the certificate authority, and ask you to make a change that would introduce a vulnerability.

In what way could it benefit security and/or privacy to utilize a paid service?

For most use cases, as far as I know, it doesn’t.

LetsEncrypt doesn’t offer EV or OV certificates, which you may need for your use case. However, these are mostly relevant at the enterprise level. Maybe you have a storefront and want an EV cert?

LetsEncrypt also only offers community support, and if you set something up wrong you could be less secure.

Other CAs may offer services that enhance privacy and security, as well, like scanning your site to confirm your config is sound… but the core offering isn’t really going to be different (aside from LE having intentionally short renewal periods), and theoretically you could get those same services from a different vendor.

[–] wildbus8979@sh.itjust.works 4 points 2 months ago

Let's encrypt also don't provide client certificates, or intermediates that allow you to sign them, which really is a shame.

load more comments (5 replies)
[–] EncryptKeeper@lemmy.world 9 points 2 months ago* (last edited 2 months ago) (1 children)

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_am_not_a_robot@discuss.tchncs.de 12 points 2 months ago (1 children)

I'm pretty sure browsers stopped distinguishing EV certificates years ago.

[–] EncryptKeeper@lemmy.world 5 points 2 months 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?

[–] Dark_Arc@social.packetloss.gg 7 points 2 months ago

So, the web uses a system called chain of trust. There are public keys stored in your system or browser that are used to validate the public keys given to you by various web sites.

Both letsencrypt and traditional SSL providers work because they have keys on your system in the appropriate place so as to deem them trustworthy.

All that to say, you're always trusting a certificate authority on some level unless you're doing self signed certificates... And then nobody trusts you.

The main advantage to a paid cert authority is a bit more flexibility and a fancier certificate for your website that also perhaps includes the business name.

Realistically... There's not much of a benefit for the average website or even small business.

load more comments
view more: next ›