Let's Encrypt ACMEv2 and Wildcard Launch Delay
community.letsencrypt.org
community.letsencrypt.org
I ponder on this question seeing how Google is planning to increasingly depreciate HTTP. While in general, I welcome the security upgrade, the lack of next-best-free-options makes me vary of this config change locking us into a $$$paid-only web publishing system.
Could you kindly link to relevant threads / RFCs / orgs / undertakings currently working on that, please?
3 -- Certificate usage 3 is used to specify a certificate, or the public key of such a certificate, that MUST match the end entity certificate given by the server in TLS. This certificate usage is sometimes referred to as "domain-issued certificate" because it allows for a domain name administrator to issue certificates for a domain without involving a third-party CA.
Then again, I was responding to the question about an RFC or other standard, not whether it was feasible today. ;-)
I think using DNS over HTTPS in conjunction with signing the response is going to be more viable since you don't have 200 ways a middle box will break it.
I've heard of blockchain based ideas as well but I'll leave that to your google-fu
I've even managed to get wildcards for $30/year from an alphassl reseller.
I first saw this strategy used in the DebOps project's PKI Ansible role at https://docs.debops.org/en/latest/ansible/roles/debops.pki/.
Basically if LE goes down, all I have to do is make 1 line of YAML changes, run an Ansible script and my servers are secured by a different provider's certificate.
I don't have any bright and practical ideas to fix that, however. Short of some other consortium making an equivalent, but with different tech underneath.
Also for what's worth, I've been deploying Let's Encrypt into production recently using Caddy and (on-demand) TLS and while it works, the rate limits being reset weekly is really scary and VERY VERY easy to hit. I know myself and my clients would be willing to pay for Let's Encrypt Pro (higher rate limits, etc). Take our money.
And as a fellow person who does real business at times, I often prefer paid products because I know I can get support from the company backing it. I don't think Let's Encrypt will replace the entire CA industry, and I don't think it should. (As tyingq says, monocultures are bad.)
How does Verizon (to take your example) ensures this? They have the same zero verification process for the non-EV cert.
I can use my CC to buy faccebook.com, and I will get it (again, outside of EV).
I may then be tracked by Interpol for fraud, but to the end user this does not change anything: Verizon has issued a certificate for my faccebook.com
The average user is going to blame Facebook anyway if they get duped into logging in at faccebook.com, and it goes to protecting their brand (trademarks are weakened if the owner doesn't defend them).
My point is that you can buy any site from a CA and no verification is done, exactly as with Let's Encrypt.
Even with an EV there is no guarantee that the requester is genuine ("best effort" to check)
1. Does this entity exist, e.g. it's in an official government business directory and the address details match what was specified 2. Use a third party directory (e.g. Dunn & Bradstreet) to look up this entity, and phone them. Ask to talk to some specific role at the company e.g. "Head of the IT department" and then confirm the details with that person.
This involves actual humans, albeit basically call centre employees, looking at paperwork, making telephone calls, that sort of thing. I guess you could label it "best effort" but to me that signifies much less.
For Americans a surprise problem with EV is that your country doesn't _have_ a central business directory. Each State runs its own directory, most businesses are registered in Delaware, regardless of their actual home state.
https://stripe.ian.sh/ has a completely genuine Stripe, Inc. EV certificate, issued to a Stripe, Inc. just not the one that's famous.
Verisign sold their certificate business a long time ago to Symantec.
Symantec had a contract with a Korean company "CrossCert" in which Symantec would issue certificates (including "Verisign" certificates) based on CrossCert's validation.
We don't actually know what CrossCert's validation practices were, because during investigation of problematic certificates Symantec found that CrossCert wouldn't give them the paperwork they should have been keeping to track this work so that it could see what they'd done. It had never asked to see that paperwork previously (over years of the relationship) and had simply accepted a Korean auditor's finding that everything was fine without really inspecting anything itself or letting anybody know about this arrangement with CrossCert.
Did you know about? When you see "Verisign" do you think "Or, you know, maybe some Korean company, but that's fine?"
Never mind, this scandal eventually resulted in Symantec exiting the CA business late in 2017, and today "Verisign" certificates are issued by DigiCert, another company you've probably never heard of.
This where LE is for me different from usual cert providers.
Currently (today, 21 February 2018) the limit is 39 months, starting 1 March 2018 the limit becomes 825 days. These limits are set down in the Baseline Requirements, which are rules agreed between the Certificate Authorities and Browser vendors (in practice mostly OS vendors) at their standing meeting. Chrome at least actually implements these in software, ie leaf certificates which seem to have a longer lifetime are simply invalid and don't work.
In practice commercial CAs tend to sell products as 1 year, 2 year or 3 year, and then they use the extra days in the BRs to let you "keep" the extra days if you renew early, so that you don't feel the need to wait until the last minute to renew to get maximum value.
It's not really that hard. I manage a dozen+ certs manually, I get reminder emails 30 days before they expire, and it takes literally a few minutes to submit a new CSR. I could autmate it even more than I do, but https://xkcd.com/1205/
I get CAs for EV and OV certs, of course you need an additional trusted party there, but the vast majority of websites out there do not use EV or OV certs and to be fair users by and large don't even notice the difference between a DV and an EV certificate in the first place.
We already have DNS, we already trust DNS to issue certificates to people, why don't we just cut out the middle man since they serve no additional purpose?
https://en.wikipedia.org/wiki/DNS-based_Authentication_of_Na...
Effectively, you’d serve a self-signed certificate, then use DNSSEC to state that the origin can use the self-signed cert. Then clients can use that without showing warnings.
However, it does rely on DNSSEC not being a total failure, so not likely to end up in widespread use anytime soon unfortunately.
Also, given the more recent growth of alternative solutions to the problems DANE solves, like Let’s Encrypt and CAA DNS records, I’m not sure we’re likely to see much more work being done on it sadly.
I have control of the DNS on my network, and at the local coffee shop. I can use that to attack users, but I cannot use that to obtain a certificate.
I still agree with you in a sense, an alternate solution would be great. But we that middleman is the best we have right now.
In every way this discussion is related, "control of the DNS" should mean control of the one authoritative DNS source, in a way which means that if a service across the internet requests a DNS record, it won't be affected by whatever DNS-trick your neighbourhood cafe's wifi may apply.
Trying to muddle the discussion of a fairly straight-forward, reliable scenario with consumer-space DNS resolution is IMO not very productive.
The CA preventing the local DNS trick is entirely relevant.
In essence, we already trust the registrars to link a name to an entity, DV certs are just going to defer the judgement to the registrar so why bother trusting an additional entity to issue certs for every domain instead of just having the registrar sign your CA that can only issue for your domain and only until your domain expires.
Right now AFAIK I can technically get a SSL cert for a domain I control and have it expire well past when the domain expired and was transferred to another party. I now have a valid certificate for a domain that I don't own.
You could also say the same for HTTP vs HTTPS (except HTTPS being considerably slower on unreliable networks).
So what's the value add in forcing everyone (even those who don't want to and have no need) to use HTTPS?
People seriously underestimate how little you are promised in the plaintext HTTP scenario over a potentially hostile network (ie almost any network)
Everything you say, or the site says, can be read and changed by any third party between you on the network and there'd be no sign they did so, no trace left.
That's almost never what you actually wanted, so, why should we keep allowing indeed arguably encouraging this practice?
How many of you are really going to set up a custom DNS updating script?
Maybe I misread something but I remember hearing wildcard certs will only work with DNS based challenges.
Wouldn't that mean the verification tool would need to support every single registrar's / DNS provider's API?
For example, I host my domains (and DNS) with namesilo.com. Is a challenge script really going to know how to interface with their API to add / remove the TXT records?
What about the 50 other popular DNS providers?
Its all open source, so grab their scripts ...
Check out acme.sh and remember, changing your DNS provider or hosting it yourself really isn't that bad.
So my suspicion seems accurate. The script will need to know how to interface with each provider and you (as an end user) will also need to be responsible for setting up your own API keys for whatever provider you use.
$ foo mydomain.org --init ovh
$ foo mydomain.org my.sub A 1.2.3.4
$ foo mydomain.org my.sub AAAA 1234::abcd
$ foo mydomain.org --remove my.sub A [1.2.3.4]
etc.I have yet to find anything that handles any DNS changes in a simple, stupid way. Most API clients I've seen only handle one kind of request: acme.sh only does TXT challenges. DynDNS endpoint only does A records. Etc.
If this is something you need to do a regular basis, you might consider hosting your own DNS and using BIND's nsupdate tool.
meh. There are some things that I'd gladly host, but DNS clerly isn't among them. Too many ways to screw up, probable breakage ahead (only 1 dedicated @ OVH), so many rate-limits to implement; DNS servers a re filled with RCEs... (bind being the worst).
Clearly, nope. Not doing this ;)
Certbot's own autorenewals (which I originally implemented and which I hope are currently working for you -- I'm happy to try to find a way to get them to work in your deployment if they're not!) try by default to renew certificates 30 days before expiry in order to give people a lot of time to notice and intervene if something goes wrong. Consistent with that, I'd encourage all of our users not to rely on anything happening less than 30 days before expiry as part of their plan for keeping certificates current on their sites.
One thing to know about the TLS-SNI situation is that TLS-SNI-01 has been disabled for new issuance and only works for renewals. The selection of authentication methods is pretty transparent because the ACME protocol allows the CA to state which methods it will accept for a particular domain authorization (so for the renewals it can state that TLS-SNI-01 is permitted, while for new issuance it can state that it's not, and a client can respond accordingly).
Apparently the ACME WG is working on a TLS-SNI-03 method that will be safer and that might be supported by Let's Encrypt (and ACME clients) at some point. But it's also possible that TLS-SNI-01 could be disabled in the future, even for renewals, even before TLS-SNI-03. So, if you happen to have anything in your setup that prevents the use of HTTP-01 on port 80 for authentication, you should be aware that renewals could potentially stop working at some point (although this isn't imminent), and that you might also have difficulty adding new domain names to your certificates.
https://community.letsencrypt.org/t/important-what-you-need-...
This unfortunate situation is a nice showcase of the ACME protocol's flexibility, because the CA has a way to tell the client very specifically what authentication methods to attempt or not to attempt for each domain (and if new methods are specified in the future, they can be rolled out incrementally without breaking compatibility).
Right now a researcher with 5 million Let's Encrypt certificates can see which ones use public keys with unusual patterns, how many are for names in the French .fr TLD, how many have longer key lengths, and so on, but they can't see whether the validation was done with Method 10 (which had this unexpected flaw) or some other method.
Another CA (can't remember which one) was looking at doing this, and it seems like it'd be nice for Let's Encrypt too.
Another concern might be that users might not want this to be disclosed because it might give attackers suggestions about how to attack their renewal processes (although of course CAs have been willing to publish information, like issued certs, that some users wouldn't prefer to make public).
The main challenge is that wildcards require DNS authorization, so a full automation is DNS api specific. My DNS (OVH) has a neat rest API. But given the variety of DNS providers and APIs it is going to be challenging to rely only on a reference implementation without wrtiting a little bit of code yourself.
Embed SCT receipts in certificates
Is also delayed? I think this has been quite underrated.
Most recent comment:
> We're working hard on it, but will probably not land this in production before the end of February. Still, we are very much aware of the upcoming deadline and committed to meeting it. Thanks for the enthusiasm everyone! :-)