Pebble's support for mandatory POST-as-GET was merged today and you can begin implementing client support using Pebble with the -strict flag.
I filed an issue to implement optional POST-as-GET for Boulder. "Optional" meaning we'll handle POST-as-GET requests to resources but also continue to allow unauthenticated GET requests to the same resources for some time
We'll pick a date in the future based on the state of the ecosystem to disable unauthenticated GET requests to resources for the V2 API. This will bring Boulder in line with Pebble's -strict implementation.
None of this will affect the legacy V1 API. Earlier discussion included the idea we might implement a "V3" API for this change but I believe current consensus internally is leaning towards a flag day with the V2 API. I expect we'll make a final decision about this in the next day or two ahead of a formal API announcement.
I hope that summary helps! Overall I'm sorry about this late breaking change. It's challenging participating in standards work and I'm very sympathetic to the client developers that have to jump into action to address this in their clients.
I think this is going to lead to a lot of broken wildcard renewals because we have a lot of Certbot users who don't have regular client upgrades (which you can see in the server-side client statistics). I would still advocate for the v3 idea as originally suggested.
These users would experience the same breakage when the V2 API was removed in favour of V3. If we schedule the V2 API flag day with this difficulty in mind I don't think its significantly worse.
This client implementation plan sounds sensible to me. I’d estimate that “Date X” is likely to be in the next week or two, with Date Y following a week afterwards.
Also just to clarify, do I have this right? The only resources that will continue to be available without PaG after November 1, 2019 are:
Directory
Forever GET’able
newNonce
Preferably HEAD, but also GET’able
Certificates
Though this is a Let’s Encrypt specific implementation decision based on the “MAY allow” phrasing in Section 6.3. Other ACME servers may choose not to allow it.
Yep, that's correct. We'll treat certificates the same way we treat other resources: GETtable for now, but POST-as-GET in the future, to match the latest spec (draft-16).