I recently needed a cert and got one from letsencrypt. Haven't read about them or followed all the news. I have no idea about the architecture of Let's Encrypt. So these might sound stupid;
- Why do we need a local client app to issue certificates? Is there a web interface in development? Is there a technical reason for it to work this way?
- Why does it issue 3 month certs? Beta period? (This is reason enough to pay btw, If I did not screw something up to end up with short term certs)
> - Why do we need a local client app to issue certificates? Is there a web interface in development? Is there a technical reason for it to work this way?
The client takes care of solving the ownership challenge, provisioning the certificate and configuring your web server (if you want it to). It also helps with renewal, in a way that it can be automated completely.
The entire process uses an open protocol (ACME), and there are a number of alternatives out there. If you like web-based ones, look at https://gethttpsforfree.com/
> - Why does it issue 3 month certs? Beta period? (This is reason enough to pay btw, If I did not screw something up to end up with short term certs)
This is likely to stay even after the beta. The reasoning behind it is that Let's Encrypt makes it easy to automate renewal, and shorter renewal periods will encourage users to configure and use automation as opposed to doing it once a year and then forgetting about it. It also reduces the time frame in which you're vulnerable in case your key is exposed at some point. (CRL and OCSP solve this only in theory.)
The goal with letsencrypt is to get everyone using SSL, even the layman. With that in mind they aim to automate the process as much as possible so you don't need to remember to update your cert or worry about it expiring. The client will handle all this for you in the background.
They are even considering shortening them to less than 3 months. I think the goal there is to ensure people automate it who would otherwise try and do it manually.
The local client app is needed to verify that you actually own the domain.
3 month certs are actually more secure since there is shorter amount of time in which they can be stolen & used.
The goal of letsencrypt is to make re-issuing certificates automated, so even a 1 week certificate is no problem since you can run a nightly cronjob to refresh it.
I'm using Let's encrypt for personal and work stuff. The official client stinks. The first time I tried it I had to shut down my web server to get the cert? It was my personal stuff, so I did it, but moved on to find a new solution for work. I'm using this: https://github.com/diafygi/acme-tiny. It needed a bit of a tweak to get the challenge files to show up on all of the EC2 instances that hide behind the ELB since you don't know which one will be hit.
As for the 90 day limit, we aren't too worried. We'll add domains often enough we shouldn't have to worry about it. and it can always be automated.
I suspect the 3 month certs is to make sure you have to authenticate your domain 4 times a year with Let's Encrypt to make sure that you can't hold a valid SSL key for the domain for more than a few months after you transfer it. Also, if someone manages to scam Let's Encrypt, the resulting cert is only valid for a short time.
The local client is there to make sure that the authentication process can be automated and not require your manual intervention.
IIRC, it is to encourage automation, and short term certificates are somewhat more secure (shorter period of use if one leaks and it isn't revoked; shorter period to attack the keys [shouldn't be an issue in any reasonable time period, but it can't hurt to limit it] etc.)
It gives 3 month certs because what you are supposed to be doing is automating the cert creation and when you have it automated 3 months certs are a good thing since it is a security benefit and has no disadvantages.
So Let's Encrypt - awesome. On a side note, I was wondering what the difference is between the base certs issued by LE vs. those fancy super, extra double / triple level certs ("EV"? if I recall) practically speaking.
LE enables Domain Validated certs...so you'll get a green lock in most browsers.
The Extended Validation certs gives you the green lock AND the name of the organization. The EV assures you that the company you're doing business with has been vetted...but customers don't know and most have not been educated about the differences in encryption and trust.
The gimmick on the super fancy certs that give the big green bar w/ company name next to the URL is that they supposedly mean the CA has done a super thorough investigation on the company and verified that they really are who they say they are. Those certs cost like $1k from most vendors. This could be valuable if you get a lot of people trying to imitate your company or domain; for example, something like nikeshoes.com v. nike.com. But since most customers don't actually know any difference, the practical value is very small.
By contrast, a normal SSL cert is issued just by confirming control of one of the domain's email addresses.
Technically, it's the the difference between the baseline requirements (for all certs) and the EV requirements (required only for EV), which are at https://cabforum.org/wp-content/uploads/EV-V1_5_7.pdf. In order to get an EV cert, you must pass those requirements, specifically:
- government information sources
- qualified independent information sources
- all domain names must be inspected by a human
- phone calls to your office
Additionally Google mandates Certificate Transparency for EV, so all EV certs have CT as a result.
EV is also required for .onion services, because what would be the point of anonymity unless you actually knew who you were talking to.
In the 90s it took a long a long time for certs to be issued: you'd fax ID to VeriSign, they'd verify your identity and sign your certificate.
DV was introduced by Geotrust as a way of saving money for CAs: DV just means you can register a domain: even if the domain seems like it belongs to a particular legal entity, DV makes no assurances that it does. People can and do get DV certs that seem like they're for major companies all the time. The process is entirely automated, and nobody is asserting any identity: https://google.com.mg and https://google.com.im exist, they're not Google, and that's fine because DV certs don't assert identity.
EV does actually assert a connection between the certificate and a specific legal identity, which is encoded in the certificate, signed and displayed in the browser. EV isn't perfect: you could attempt to be verified as another company. However it is the only type of certificate that assures an actual identity to browsers.
Disclaimer: I work for a startup that's created significantly faster, more painless EV validation. We think it's important that Alice knows she's talking to Bob.
A 3-year wildcard cert from rapidSSL is only 200 bucks when purchased through a reseller. If going in that direction saves you even a couple hours over the course of three years, it's more than paid for itself.
You generate a new CSR + private key and reissue the cert through the vendor. All the ones I've purchased allow reissuing as often as you like. The expiration date never changes obviously, but reissuing is a common practice.
With ELB, in most of my projects wildcard certificates are a must and thus Let's Encrypt is not an option. I hope one day (soon) they implement that as well.
I have nurtured the secret belief that the reason that Letsencrypt renews certificates ("automatically") every three months is not a feature... but a forced limitation by the guys who own the root cert chain.
If I'm a startup, why should I shirk away from paying 9.99 for a RapidSSL certificate from namecheap and have it working reliably through Ansible/Puppet/Docker... and rather muck about with the chance that my server SSL cert may go down because my letsencrypt client was outdated or something.
Or worse, I have a wordpress site running on a PHP host - the best case scenario is that they agree to use a certificate I buy. Running a python based client ?
The LetsEncrypt root is in-house, not third party. Certificates are also cross-signed by IdenTrust, but once the LetsEncrypt root is in all major browsers, it won't be necessary to have a cross-signature.
That's not to say that they don't have some other motive for the 90 day expiry, but I don't think they need the support of major CAs for what they're doing at the moment.
I meant the cross signing. That is the big deal here. And I somehow have this nagging feeling that they were strong armed into the 3 month renewal policy. No other reason to not have yearly renewals.
Even if they do get into Browser roots now, there are hundreds of millions of mobile devices out there that will not accept Letsencrypt without a cross sign. Lets face it Letsencrypt is dead in the water without Identrust (or someone similar).
As mentioned in the other threads, 3 month renewal provides a smaller risk window for compromised domains/certificates.
This is important, considering that certificate revocation is not a universally solved problem, and that Let's Encrypt is aiming to radically increase the amount of certificate issues as a whole.
No strongarming necessary, I'm pretty sure technical considerations ruled the day here.
ACMs roots are cross-signed by Starfield (GoDaddy iirc), while they wait for their inclusion in the browser roots... so I can't see a difference with LetsEncrypt? AFAIK either you have the processes/tech in place to secure your CA and issue certificates, or you don't.
https://mozillacaprogram.secure.force.com/CA/PendingCACertif... shows Mozilla's in-progress certifications -- including LetsEncrypt, Amazon, DocuSign, VISA, a bunch of governments, telcos, existing CAs, and others I don't recognise. Cross-signing is a pragmatic solution for older client devices (eg. abandonware Android phones) for _any_ CA root, new or otherwise.