Let's Encrypt Hits 50M Active Certificates and Counting
eff.org
eff.org
> I could have avoided this by combining names into a single certificate
You can get a cert (via <=20, 100 SAN combined certs) 2000 subdomains per week.
I actually don't really understand your problem case though. What do you mean by:
> when moving domains
That entirely depends on where/how you're terminating TLS.
Do you really have > 20 different pieces of independent software all doing their own TLS?
This is exactly what things like HAProxy are for.
You deploy software, that software declares it needs TLS for its endpoint, and certs are obtained.
While moving from one cluster to another, a new deployment of everything was done - about 20 different services - a few minutes work with Kubernetes. However, the fetching of TLS certs stopped working for the very last service!
Yes, I should have migrated the certs, however, the migration was happing due to a failure - I couldn't access the old certs.
I now make sure to backup those secrets rather than rely on re-issuance.
Still, for a usecase like Kubernetes, 20 certs per domain per week is limiting. I do totally understand that the quotas are in place because cert issuance is expensive, but I'd happily pay a yearly subscription fee to LE to cover the costs and help fund them if the option was there!
Each independent application is isolated from each other, sharing a TLS cert/key among them all means we're weakening security - again, the Kubernetes patterns here would mean we need to duplicate the secret data into each applications namespace, allowing a compromise of one to compromise the TLS of all.
There are legitimate reasons to not share a single TLS cert for everything in an environment like Kubernetes.
(I'm nearly certain it's not possible to reference secrets cross namespace when declaring an ingress secret, or mounting a secret)
yeah, this would be wrong indeed.
Is there any requirement for an TLS terminating proxy acting as k8s ingress to actually store the TLS secrets in the same namespace where the requesting ingress object lives?
There may be ways around this, however, I've never personally looked for them.
You do have to be a little careful, for example adding a new SAN to a cert might fail due to 20-per-domain-per-week limits, attempting to renew that cert without removing the extra SAN will fail.
[1]: https://docs.google.com/forms/d/e/1FAIpQLSetFLqcyPrnnrom2Kw8...
"Hi, I noticed your website does not support HTTPS. Have you heard about Let's Encrypt? Let’s Encrypt is a free, automated, and open Certificate Authority. [...]"
Ideally available in multiple languages as well.
LE imposes a requirement to renew certificates every 90 days, which is a nuisance. Logging-in, finding my process crib-sheet, running the update requests, updating DNS records, running the validation requests, shifting certs to servers, restarting services... all because the LE project wants to evangelise short certificate lifespans, which seems to have been bolted onto the original goal of 'encrypt all the things' because of someone's personal conviction.
I do wish they'd offer a longer optional lifespan. Even 365 days would be a huge improvement. Until then I really can't recommend it to less-technically-inclined colleagues; I just tell them go and buy a one-year cert from Gandi, chuck it into the ssl directory and forget about it until the renewal reminder arrives 11 months later.
You're doing it wrong. There are many ways to use the ACME protocol (and Lets Encrypt), I think pretty much anyone will agree this is simply the wrong way to do it.
The ACME protocol is an API (as opposed to the CA's "upload a manually created, signed CSR, then wait for an HTML email and click the link in it and then download this file" process) so that it can be automated, and hands-off.
Once the certificates got renewed the secrets are not working anymore because they must be immutable.
It's been great for us in many respects. We no longer have certificates shared between servers, which removes the vulnerability to DROWN and some other problems. We also tend to serve multiple domains from a single IP, which requires a cert that covers all domains. LE lets us trivially get a cert to cover multiple domains, which would be especially expensive with project managers who can't make up their minds on what domains they want to use. And, we get the usual benefits of LE - effective forward secrecy in case someone obtains a single key/etc.
There was a little bit of pain at first getting the renewal infrastructure set up properly. My setup still isn't quite perfect, so far the standalone certbot option is the least painful for me. I have a cronjob which shuts down httpd, starts up certbot-standalone, does the renew, and restarts httpd, so we are down for an additional ~5 seconds per day while we renew. Not the end of the world for our usage.
My email is in my profile if you want to get in touch.