Decide which plugins to use for authentication & installation

certbot.plugins.selection.pick_configurator(config, default, plugins, question='How would you like to authenticate and install certificates?')[source]

Pick configurator plugin.

certbot.plugins.selection.pick_installer(config, default, plugins, question='How would you like to install certificates?')[source]

Pick installer plugin.

certbot.plugins.selection.pick_authenticator(config, default, plugins, question='How would you like to authenticate with the ACME CA?')[source]

Pick authentication plugin.

certbot.plugins.selection.get_unprepared_installer(config, plugins)[source]

Get an unprepared interfaces.IInstaller object.


Unprepared installer plugin or None

Return type:

IPlugin or None

certbot.plugins.selection.pick_plugin(config, default, plugins, question, ifaces)[source]

Pick plugin.

  • certbot.interfaces.IConfig – Configuration
  • default (str) – Plugin name supplied by user or None.
  • plugins (certbot.plugins.disco.PluginsRegistry) – All plugins registered as entry points.
  • question (str) – Question to be presented to the user in case multiple candidates are found.
  • ifaces (list) – Interfaces that plugins must provide.

Initialized plugin.

Return type:


certbot.plugins.selection.choose_plugin(prepared, question)[source]

Allow the user to choose their plugin.


Plugin entry point chosen by the user.

Return type:


certbot.plugins.selection.record_chosen_plugins(config, plugins, auth, inst)[source]

Update the config entries to reflect the plugins we actually selected.

certbot.plugins.selection.choose_configurator_plugins(config, plugins, verb)[source]

Figure out which configurator we’re going to use, modifies config.authenticator and config.installer strings to reflect that choice if necessary.

:raises errors.PluginSelectionError if there was a problem

Returns:(an IAuthenticator or None, an IInstaller or None)
Return type:tuple
certbot.plugins.selection.set_configurator(previously, now)[source]

Setting configurators multiple ways is okay, as long as they all agree :param str previously: previously identified request for the installer/authenticator :param str requested: the request currently being processed


Figure out which plugins the user requested with CLI and config options

Returns:(requested authenticator string or None, requested installer string or None)
Return type:tuple
certbot.plugins.selection.diagnose_configurator_problem(cfg_type, requested, plugins)[source]

Raise the most helpful error message about a plugin being unavailable

  • cfg_type (str) – either “installer” or “authenticator”
  • requested (str) – the plugin that was requested
  • plugins (PluginsRegistry) – available plugins

error.PluginSelectionError – if there was a problem