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.
I have auto redirect to 443. But --nginx works fine. I think it overrides stuff for whatever the specific url used is.
Yes you need both 80 and 443 for certbot to work. Anyway having 80 to redirect to 443 is common and not a security risk.
I meant certbot with nginx plugin and http-01 challenge.
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.
LE only certify your domain name, you may want to put more (like company name) to cert and it is where classic certs providers come to help.
deleted by creator
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
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.
Can’t argue against that.
However, I prefer local domain names accessible via Wireguard with self-signed certs. I like to understand how everything works under the hood !
Also, I’m broke AF and buying a domain name (even cheap ones) are out of my budget :(.
Numeric .xyz domains only cost $1 a year. They’re not great for things like mail because they’re often used by spammers (probably because of the price), but it’s great for cheap signed DNS hostnames.
I point it to the server on my local network and use Wireguard to connect myself.
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
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.
I was also with a provider that didn’t offer API access for the longest time. When they then increased prices, I switched, now paying a third of their asking price per year at a very good provider.
I guess migrating is difficult if the provider doesn’t offer a mechanism to either dump the DNS to a file or perform a zone transfer (the later being part of the standard).
Can only recommend INWX for domains, though my personal requirements aren’t the highest.
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.
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.
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.
Let’s encrypt also don’t provide client certificates, or intermediates that allow you to sign them, which really is a shame.
Do EV and OV certs actually provide additional useful? When was the last time you reviewed the certificate of a site you access for non work purposes?
EV certs give you an extra green bar or something along those lines. If your customers care about it, then you have to. If they don’t - and they probably don’t - it’s a waste.
They got rid of that years ago though.
My employer had an EV cert for years on our primary domain. The C-suites, etc. thought it was important. Then one of our engineers who focuses on SEO demonstrated how the EV cert slowed down page loads enough that search engines like Google might take notice. Apparently EV certs trigger an additional lookup by the browser to confirm the extended validity.
Once the powers-that-be understood that the EV cert wasn’t offering any additional usefulness, and might be impacting our SEO performance (however small) they had us get rid of it and use a good old OV cert instead.
Good to know! I saw that mentioned on some (apparently outdated) Comodo marketing copy as a benefit over LE
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?
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.
Certain unnamed companies coughgoogle 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
Breathe, son.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters CA (SSL) Certificate Authority CF CloudFlare DNS Domain Name Service/System HTTP Hypertext Transfer Protocol, the Web HTTPS HTTP over SSL IP Internet Protocol SSL Secure Sockets Layer, for transparent encryption TLS Transport Layer Security, supersedes SSL nginx Popular HTTP server
9 acronyms in this thread; the most compressed thread commented on today has 7 acronyms.
[Thread #969 for this sub, first seen 12th Sep 2024, 15:05] [FAQ] [Full list] [Contact] [Source code]
Not the only use cases, but you’d need a different service if you need/want wildcard certs, certs that are manually installed and managed, or certs with a longer expiration.
Letsencrypt issues wildcard certificates. This is however more complicated to setup.
I’d say they’re actually easier, at least in my experience. Since wildcard certs use DNS-01 verification with an API, you don’t need to deal with exposing port 80 directly to the internet.
Yes, it can be easier. But not every DNS provider allows API access, so you might need to change the provider.
(good luck with that in many enterprise scenarios).
You can also delegate a subdomain to another provider with an API, but yes I see what you mean. Although I feel like getting port 80 open would be difficult as well in those situations.
You can use ACNE DNS. Just add the single record for acne dns and then you can the acne dns api to fulfill the challange.
Yes, if you do this
manuallyit will work.No, you can do this process to automate it.
Sorry, I understood you wrong. You’re right!
Whoa, really??? I guess I just assumed nothing changed in the last 5 years. I need to look into that.
I’ve set it up fully automated with traefik and dns challenges.
Same. It works great.
deleted by creator
You can get wildcard certs with LetsEncrypt (since 2018): https://community.letsencrypt.org/t/acme-v2-production-environment-wildcards/55578
Let’s encrypt, and any other ACME based certificate of authorities will let anyone without identity verification create a SSL cert that will work in any browser. This creates trust issues with certain clients browsing web. For example my work (50k+ employees) uses Zscaler to evaluate if a website is safe and it 100% will down-votes any site that uses let’s encrypt due to the lack of transparency. Zscaler will eventually block that website from employees if the score falls too low. Having an SSL cert that you pay for gives cyber security, firms - rightly or wrongly - an additional level of confidence that your identity has been verified.
Full disclosure: I use let’s encrypt on all my self hosted docker instances via Coolify which suits my needs. If I were to set up an ecommerce or other site that needs to guarantee trust, I would absolutely use a paid ssl cert.
Neither does Google Trust Services or DigiCert. They’re all HTTP validation on Cloudflare and we have Fortune 100 companies served with LetsEncrypt certs.
I haven’t seen an EV cert in years, browsers stopped caring ages ago. It’s all been domain validated.
LetsEncrypt publicly logs which IP requested a certificate, that’s a lot more than what regular CAs do.
I guess one more to the pile of why everyone hates Zscaler.
DigiCert recently was forced to invalidate something like 50,000 of their DNS-challenge based certs because of a bug in their system, and they gave companies like mine only 24 hours to renew them before invalidating the old ones…
hey I don’t make the trust rules. ZScaler is trash imo but hundreds of thousands of clients are ‘protected’ by their trust rules. People downvoting my post because it doesn’t wash with ‘the way things should be’ but in reality SSL certs are like email providers these days - if you aren’t paying with one of the big corps, a good portion of your web traffic (or email) might be blocked. Sad but true. There is a reason Let’s Encrypt and Cloudflare et al are heavily used by Crypto sites, and that is due to the anonymity they provide. If all you care about is encrypting traffic, use Let’s Encrypt. If you care at all about perception of trust, use paid SSL. simple.
we have Fortune 100 companies served with LetsEncrypt certs
these are subdomains of a verifiably certified root domain no doubt
Untrue. I work for a global enterprise company that transacts hundreds of millions of dollars via LE certs.
I believe you, but I also very much believe that there are security vendors out there demonizing LE and free stuff in general. The more expensive equals better more serious thinking is unfortunately still quite present, especially in big corps. Big corps also seem to like the concept of having to prove yourself with a high price of entry, they just can’t believe a tiny company could possibly have a better product.
That doesn’t make it any less ridiculous, but I believe it. I’ve definitely heard my share of “we must use $sketchyVendor because $dubiousReason”. I’ve had to install ClamAV on readonly diskless VMs at work because otherwise customers refuse to sign because “we have no security systems”. Everything has to be TLS encrypted, even if it goes to localhost. Box checkers vs common sense.
I work for a global enterprise company that transacts hundreds of millions of dollars via LE certs.
The B2B use case isn’t quite what I was referring to with respect to the type of trust required for first time or consumer transactions such as ecommerce. That said, this enterprise doesn’t sound federally regulated at all because if it were, it wouldn’t be using Let’s Encrypt.
That’s frankly silly. Let’s encrypt makes sure you control either the domain or a server the domain points to.
Almost all of the internet uses Let’s encrypt
Let’s encrypt makes sure you control either the domain or a server the domain points to
‘ Control’ but not own, which leaves it open to criminal activity. In contrast, a SSL certificate authority will ask for multiple pieces of ID for corporate registrants including articles of incorporation.
Personally, I distrust any ecommerce site that uses any free cert. I see paid cert as a commitment to do honest business, as they need to have some records on the CA.
But for a blog or anythings other than ecommerce is totally fine by me.
Note: It is not about security, nor automation, but a show commitment (i.e. buying a cert), largely psycological.
Let’s Encrypt is just as secure as paid certs. They’re held to the same security standard.
even more secure with the 90 days policy.
Better as they are more transparent
Most paid certs aren’t worth much anyway. Payment and delivery info for DV certs isn’t validated by anyone, it’s literally the same concept as Let’s Encrypt. OV and EV are the only ones that theoretically have any value, but nobody is using those ever since they got rid of the URL bar labeling; even Amazon is on DV nowadays.
Nothing of value was lost when EV certificates disappeared.
Well the cert companies were harmed
IMO, sticking to manual processes that are error-prone is a waste of money and not a sign of a honest business.
I don’t believe paid cert can’t use automation to keep certs upto date.
You’re right, ssl.com offers this, too.
LetsEncrypt is legit. A downside is that the certs expire after 90 days. However, that also carries an upside in that it limits the damage in case a certificate is compromised. There are procedures by which you can automatically renew/request (I forget whether they allow renewing an existing cert or require a brand new one) LE certs and apply them to your application, but that can be fiddly to configure.
If you’re not comfortable with configuring automatic certificate cycling, a long-term paid cert would be more appropriate.
It makes sense that they issue short certificates, though. The sole verification is that you own the domain. If you sell/let the domain lapse and someone else takes it over, there’s only a limited time you would hold a valid certificate for it.
I didn’t say it isn’t legit nor I distrust automation, but I would like to see anyone operating an online shop paid for a cert to show they are honest and won’t diappear in thin air not delivering. Am I going to get back what I paid, properly not, but a basic DV cert isn’t expensive either for a business.
LetsEncrypt certs are DV certs. That a put a TXT record for LetsEncrypt vs a TXT record for a paid DigiCert makes no difference whatsoever.
I just checked and Shopify uses a LetsEncrypt cert, so that’s a big one that uses the plebian certs.
The difference between $0 and $50 isn’t really relevant.
Then I don’t see any problem for them just put down $50 more.
Bad actors can afford $50 the same as good ones.
Would you accept a certificate issued by AWS (Amazon)? Or GCP (Google)? Or azure (Microsoft)? Do you visit websites behind cloudflare with CF issued certs? Because all 4 of those certificates are free. There is no identity validation for signing up for any of them really past having access to some payment form (and I don’t even think all of them do even that). And you could argue between those 4 companies it’s about 80-90% of the traffic on the internet these days.
Paid vs free is not a reliable comparison for trust. If anything, non-automated processes where a random engineer just gets the new cert and then hopefully remembers to delete it has a number of risk factors that doesn’t exist with LE (or other ACME supporting providers).
I would say the more regular expiration and renewal of an LE cert is better.
It’s an ongoing check instead of an annual check.