Added
- ACME Renewal Info (ARI) support. https://datatracker.ietf.org/doc/draft-ietf-acme-ari/
certbot renewwill automatically check ARI when using an ACME server that supports it,
and may renew early based on the ARI information. For Let's Encrypt certificates this
will typically cause renewal at around 2/3rds of the certificate's lifetime, even if
the renew_before_expiry field of a lineage renewal config is set a later date.
Changed
- Switched to src-layout from flat-layout to accommodate PEP 517 pip editable installs
- acme.client.ClientNetwork now makes the "key" parameter optional.
- Deprecated
acme.challenges.TLSALPN01Response - Deprecated
acme.challenges.TLSALPN01 - Deprecated parameter
alpn_protocolsfromacme.crypto_util.probe_sni - Deprecated
acme.crypto_util.SSLSocket - Deprecated
acme.standalone.TLSServer - Deprecated
acme.standalone.TLSALPN01Server - Deprecated parameter
enforce_openssl_binary_usagefrom certbot.ocsp.RevocationChecker. - Dropped support for Python 3.9.0 and 3.9.1 for compatibility with newer
versions of the cryptography Python package. Python 3.9.2+ is still
supported.
Fixed
- Order finalization now catches
orderNotReadyresponse, polls until order status is
ready, and resubmits finalization request before polling forvalidto download
certificate. This conforms to RFC 8555 more accurately and avoids race conditions where
all authorizations are fulfilled but order has not yet transitioned to ready state on
the server when the finalization request is sent. It also respects retry-after when
polling for finalization readiness. - The --preferred-profile and --required-profile flags now have their values stored in
the renewal configuration so the same setting will be used on renewal. - Fixed an unintended change introduced in 4.0.0 where
renew_before_expirycould not be
shorter than certbot's default renewal time. If the server does not provide an ARI
response,renew_before_expirywill continue to override certbot's default. However,
an early ARI response will override a laterrenew_before_expirytime, to account for
notifications in case of certificate revocation, especially with the impending deprecation
of OCSP (https://letsencrypt.org/2024/12/05/ending-ocsp/). To force a later date, users
can replace certbot's default cron job and/or systemd timer with one of their own timing.
More details about these changes can be found on our GitHub repo.