Thanks for the feedback, i changed reason to 0 and the revocation does seem to work now.
I will do more rigorous testing when back at work but appreciate your insight (and that from petercooperjr).
Note that Pebble doesnt have this same behavior (at least when using letsencrypt/pebble:latest).
It is strange that this was changed without explanation in the pull request and without an API announcement. I can't find any spec for it either. I could speculate that Let's Encrypt wants to discourage people from using the key compromise reason, since they have to store a list of compromised keys forever, in order to fulfill their obligation to block new certificate requests using previously compromised keys. But that is purely speculation, and might be unrelated.
I agree that this is the kind of change that should have been mentioned in API Announcements.
@jple Going to bug you on this one too.
There's also this from the CPS:
Subscribers can revoke certificates belonging to their accounts via the ACME API if they can sign the revocation request with the associated account private key. No other information is required in such cases.
Now, that's not saying anything about revocation reason, but it seems really weird to me that a CA would accept a revocation request, but not for the reason of a compromised key (which is the main reason one would want to be sure to revoke).
More info forthcoming! I'll chat with the team.
Also could you advise wrt using Pebble to test functionality - it was my impression that Pebble can force encounters with use cases that may never happen with Boulder. In this case Pebble allowed the revocation while Boulder failed it. Thanks!!!
any update on this? thanks!
If anyone does figure out the reason, IMHO this behavior should be added to either the "Divergences" or "Implementation Details" docs for Boulder. (I'm not sure yet which one it belongs to)
That page is written for the general public, and are really limited to the popular/official LetsEncrypt clients.
Client maintainers should be referencing the divergences/details documents; and the API announcements. This should have been published on both.
Very frustrating - I'll need to create tests to handle this on our client now
We are working on the fixes required to make Pebble and Boulder align. When we have more information, we will be sure to share in this thread! Hang tight.
@jple Just poking you again on this. It seems like a pretty significant change to revocation requirements, and not having any real update or explanation for a month is rather disconcerting. Thanks!
I would have just said:
B U M P
bump was actually more for @Osiris than anyone else - maybe the context here can help explain the term (by example)]
At minimum a statement from LE if breaking existing ACME clients was accidental, or if LE's philosophy isnt so much about providing significant visibility before pushing functionality like this to the cloud would be helpful. LE did a great job providing visibility wrt ACME v1.0 API sunset, so I'm guessing the former. Realize there are lots of moving parts here....
I agree with my fellow Community members above: this could (should?) have been communicated in some way.
I'm also interested into the reasons WHY this change was necessary. I can't tell from the pull requests on github? Maybe @jple could enlighten us about that too.
Thanks for your patience with this. We don't have an update yet but hope to by the end of next week! I promise we are working on it - and will post as soon as we are able.
Thanks again for being a great community!
@jple Just pinging you again, now that the "end of next week" has passed.
Thank you all for your patience. This change is related to a (now patched) ACME bug that could have potentially been used for a denial of service attack. Let's Encrypt considered it a security bug that could affect other ACME CA implementations and embargoed the information during a responsible disclosure period.
Our update regarding this ACME implementation change is available here: Change in Revocation Methods Due to a (now patched) ACME bug
Additional questions and discussion can be held here: Question re: Change in Revocations Methods