I understand that concern, but I don't think there exists a "global" way to handle this deprecation properly other than a failure to issue. IMHO, the best way to inconvenience users the least is for Clients to offer a transition strategy.
Consider a use-case with the Certbot Client and a certificate queued for renewal with the --must-staple
flag. The Subscriber has explicitly opted-in to the "must-staple" extension, and expects their certificate to be procured with that extension – an intention that might be caused by simple intent, an internal security policy, or a third-party certification/auditing requirement.
If the ACME Client and ACME Server suddenly decide to ignore the must-staple
extension to prioritize seamless renewal over a Subscriber's explicit security configuration, the Subscriber would be receiving a Certificate that might be incompatible with their internal business requirements or contractual obligations. This is a "big f*ing deal". Keep in mind- the extension itself is not deprecated, nor is this a global change wherein no CA supports it any longer – the extension is simply deprecated from a single CA's Issuance API. The only acceptable action is for the ACME Order to fail, and allow the Subscriber to determine if they must continue supporting it through another CA, or if they can rely on the forward-thinking behavior of LetsEncrypt and drop OSCP support. The lack of OCSP support and an OCSP responder will also mean that Subscribers will need to reconfigure their webservers (or cloud dashboards) to drop the OCSP configuration. Simply issuing the Certificate without an OSCP responder is likely to break servers.
So our situation is roughly the following:
1- LetsEncrypt will drop OCSP support in the future, with a timeline TBD
2- Serving a Certificate expected to be must-staple
may break a Subscriber's internal policies and third-party auditing/certification requirements
3- Restarting/Reloading a Service with a must-staple
Certificate may break the service
API changes and deprecations are a massive pain, but I don't see how LetsEncrypt could just ignore a must-staple
request given the context and character of this extension. This really needs to be a breaking change.
If this is a breaking change, then it falls on Client developers to help Subscribers migrate from this configuration – or to another CA – BEFORE the change goes live into production.
In the simplest scenario, given this forthcoming change, Clients should start to WARN users or even FAIL requests and no longer support it.
The annoying bit about this though, is that OCSP still has massive utility and the replacement technology/ecosystem isn't quite there yet. Perhaps this is being too subjective, but (within the context of ISRG's motivation and rationale): while the Cons of OCSP will soon outweigh the Pros... the Pros are currently outweighing the Cons. Given this situation, it makes sense to try and offer a seamless transition path so Subscribes can enjoy OCSP until it is deprecated. A seamless transition path would also address the scenario where ISRG decides to delay the (TBD) deprecation for an indeterminate amount of time.
Expanding on my suggestion above, I think LetsEncrypt could use the account emails to periodically notify Subscribers who utilize must-staple
the extension is being deprecated, and provide them with a recommended transition strategy.
To be clear: I am incredibly unhappy with this decision, and think it is going to cause a major headache for Clients Maintainers and Subscribers alike because I adamantly believe a request for must staple
MUST be rejected and not silently ignored. I think Subscribers running legacy clients are going to be massively impacted, and I fear automated CI systems are going to be hit hard by this too. While I understand (and actually agree with) ISRG's concerns and motivations for this deprecation, this sort of change is something that should be done in a 3+ year plan, not a 9-18 month one.