Added
- New functions that Certbot plugins can use to interact with the user have
been added tocertbot.display.util. We plan to deprecate usingIDisplay
withzopein favor of these new functions in the future. - The
Plugin,AuthenticatorandInstallerclasses are added to
certbot.interfacesmodule as alternatives to Certbot's currentzopebased
plugin interfaces. The API of these interfaces is identical, but they are
based on Python'sabcmodule instead ofzope. Certbot will continue to
detect plugins that implement either interface, but we plan to drop support
forzopebased interfaces in a future version of Certbot. - The class
certbot.configuration.NamespaceConfigis added to the Certbot's
public API.
Changed
- When self-validating HTTP-01 challenges using
acme.challenges.HTTP01Response.simple_verify, we now assume that the response
is composed of only ASCII characters. Previously we were relying on the
default behavior of the requests library which tries to guess the encoding of
the response which was error prone. acme: the.client.Clientand.client.BackwardsCompatibleClientV2classes
are now deprecated in favor of.client.ClientV2.- The
certbot.tests.patch_get_utility*functions have been deprecated.
Plugins should now patchcertbot.display.utilthemselves in their tests or
usecertbot.tests.util.patch_display_utilas a temporary workaround. - In order to simplify the transition to Certbot's new plugin interfaces, the
classesPluginandInstallerincertbot.plugins.commonmodule and
certbot.plugins.dns_common.DNSAuthenticatornow implement Certbot's new
plugin interfaces. The Certbot plugins based on these classes are now
automatically detected as implementing these interfaces. - We added a dependency on
chardetto our acme library so that it will be
used overcharset_normalizerin newer versions ofrequests.
Fixed
- The Apache authenticator no longer crashes with "Unable to insert label"
when encountering a completely empty vhost. This issue affected Certbot 1.17.0. - Users of the Certbot snap on Debian 9 (Stretch) should no longer encounter an
"access denied" error when installing DNS plugins.
More details about these changes can be found on our GitHub repo.