ARI - Add support for Mass Revocation#6953
Conversation
|
Hi there! I came up with a better idea! When the If you want to try this, copy the ACME Directory (e.g. https://acme-staging-v02.api.letsencrypt.org/directory), self-host the output and update the "renewalInfo" url to use your own ACME Renewal Info. |
There was a problem hiding this comment.
Pull request overview
Adds ARI (RFC 9773) handling in renew() to better cope with CA-driven renewal scheduling changes (e.g., mass revocation scenarios) by recalculating and persisting Le_NextRenewTime when the CA’s ARI window no longer matches the locally stored renewal time.
Changes:
- Require both
suggestedWindow.startandsuggestedWindow.endbefore applying ARI logic inrenew(). - Compute ARI window bounds and update
Le_NextRenewTime/Le_NextRenewTimeStrwhen the stored renewal time falls outside the CA-provided window. - Persist the updated next-renewal timestamps back into
DOMAIN_CONFduring renewal checks.
Critical Issues (Must Fix Before Merge)
- The new ARI update condition performs
-lt/-gtnumeric comparisons onLe_NextRenewTimewithout ensuring it is present and numeric; this can error if the value is missing/corrupted and prevent applying the ARI window correctly.
Suggestions (Improvements to Consider)
- None beyond the blocking issue above.
Good Practices (Points to Commend)
- Uses existing helpers (
_date2time,_math,_time2str,_savedomainconf) and matches the ARI window-picking approach already used elsewhere in the script.
|
Hey,
Printed in logs with |
Ref:
ARI should support imminent renewal (renew in 24 hours, before revocation by the CA).
First option was to add support for ARI on
issue()(see #6952).I think it is better to simply update the
$Le_NextRenewTimeand$Le_NextRenewTimeStrwhen ARI "start" is in the past.