s/Let's Encrypt/Certbot

This commit is contained in:
Brad Warren
2016-04-13 16:13:50 -07:00
parent 3961b70deb
commit 1b565ef74a
23 changed files with 47 additions and 48 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt client.""" """Certbot client."""
# version number like 1.2.3a0, must have at least 2 parts, like 1.2 # version number like 1.2.3a0, must have at least 2 parts, like 1.2
__version__ = '0.6.0.dev0' __version__ = '0.6.0.dev0'
+3 -3
View File
@@ -81,15 +81,15 @@ class Account(object): # pylint: disable=too-few-public-methods
def report_new_account(acc, config): def report_new_account(acc, config):
"""Informs the user about their new Let's Encrypt account.""" """Informs the user about their new ACME account."""
reporter = zope.component.queryUtility(interfaces.IReporter) reporter = zope.component.queryUtility(interfaces.IReporter)
if reporter is None: if reporter is None:
return return
reporter.add_message( reporter.add_message(
"Your account credentials have been saved in your Let's Encrypt " "Your account credentials have been saved in your Certbot "
"configuration directory at {0}. You should make a secure backup " "configuration directory at {0}. You should make a secure backup "
"of this folder now. This configuration directory will also " "of this folder now. This configuration directory will also "
"contain certificates and private keys obtained by Let's Encrypt " "contain certificates and private keys obtained by Certbot "
"so making regular backups of this folder is ideal.".format( "so making regular backups of this folder is ideal.".format(
config.config_dir), config.config_dir),
reporter.MEDIUM_PRIORITY) reporter.MEDIUM_PRIORITY)
+2 -2
View File
@@ -445,7 +445,7 @@ _ERROR_HELP = {
"your domain, please ensure that the signature is valid.", "your domain, please ensure that the signature is valid.",
"malformed": "malformed":
"To fix these errors, please make sure that you did not provide any " "To fix these errors, please make sure that you did not provide any "
"invalid information to the client, and try running Let's Encrypt " "invalid information to the client, and try running Certbot "
"again.", "again.",
"serverInternal": "serverInternal":
"Unfortunately, an error on the ACME server prevented you from completing " "Unfortunately, an error on the ACME server prevented you from completing "
@@ -453,7 +453,7 @@ _ERROR_HELP = {
"tls": "tls":
_ERROR_HELP_COMMON + " Additionally, please check that you have an " _ERROR_HELP_COMMON + " Additionally, please check that you have an "
"up-to-date TLS configuration that allows the server to communicate " "up-to-date TLS configuration that allows the server to communicate "
"with the Let's Encrypt client.", "with the Certbot client.",
"unauthorized": _ERROR_HELP_COMMON, "unauthorized": _ERROR_HELP_COMMON,
"unknownHost": _ERROR_HELP_COMMON, "unknownHost": _ERROR_HELP_COMMON,
} }
+5 -5
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt command line argument & config processing.""" """Certbot command line argument & config processing."""
from __future__ import print_function from __future__ import print_function
import argparse import argparse
import glob import glob
@@ -48,9 +48,9 @@ cli_command = "letsencrypt-auto" if fragment in sys.argv[0] else "certbot"
SHORT_USAGE = """ SHORT_USAGE = """
{0} [SUBCOMMAND] [options] [-d domain] [-d domain] ... {0} [SUBCOMMAND] [options] [-d domain] [-d domain] ...
The Let's Encrypt agent can obtain and install HTTPS/TLS/SSL certificates. By Certbot can obtain and install HTTPS/TLS/SSL certificates. By default,
default, it will attempt to use a webserver both for obtaining and installing it will attempt to use a webserver both for obtaining and installing the
the cert. Major SUBCOMMANDS are: cert. Major SUBCOMMANDS are:
(default) run Obtain & install a cert in your current webserver (default) run Obtain & install a cert in your current webserver
certonly Obtain cert, but do not install it (aka "auth") certonly Obtain cert, but do not install it (aka "auth")
@@ -848,7 +848,7 @@ def _paths_parser(helpful):
def _plugins_parsing(helpful, plugins): def _plugins_parsing(helpful, plugins):
helpful.add_group( helpful.add_group(
"plugins", description="Let's Encrypt client supports an " "plugins", description="Certbot client supports an "
"extensible plugins architecture. See '%(prog)s plugins' for a " "extensible plugins architecture. See '%(prog)s plugins' for a "
"list of all installed plugins and their names. You can force " "list of all installed plugins and their names. You can force "
"a particular plugin by setting options provided below. Running " "a particular plugin by setting options provided below. Running "
+2 -2
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt client API.""" """Certbot client API."""
import logging import logging
import os import os
@@ -360,7 +360,7 @@ class Client(object):
fullchain_path=fullchain_path) fullchain_path=fullchain_path)
self.installer.save() # needed by the Apache plugin self.installer.save() # needed by the Apache plugin
self.installer.save("Deployed Let's Encrypt Certificate") self.installer.save("Deployed ACME Certificate")
msg = ("We were unable to install your certificate, " msg = ("We were unable to install your certificate, "
"however, we successfully restored your " "however, we successfully restored your "
+1 -1
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt user-supplied configuration.""" """Certbot user-supplied configuration."""
import copy import copy
import os import os
+1 -1
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt constants.""" """Certbot constants."""
import os import os
import logging import logging
+1 -1
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt client crypto utility functions. """Certbot client crypto utility functions.
.. todo:: Make the transition to use PSS rather than PKCS1_v1_5 when the server .. todo:: Make the transition to use PSS rather than PKCS1_v1_5 when the server
is capable of handling the signatures. is capable of handling the signatures.
+1 -1
View File
@@ -1 +1 @@
"""Let's Encrypt display utilities.""" """Certbot display utilities."""
+1 -1
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt Enhancement Display""" """Certbot Enhancement Display"""
import logging import logging
import zope.component import zope.component
+1 -1
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt display.""" """Certbot display."""
import os import os
import textwrap import textwrap
+7 -7
View File
@@ -1,8 +1,8 @@
"""Let's Encrypt client errors.""" """Certbot client errors."""
class Error(Exception): class Error(Exception):
"""Generic Let's Encrypt client error.""" """Generic Certbot client error."""
class AccountStorageError(Error): class AccountStorageError(Error):
@@ -14,7 +14,7 @@ class AccountNotFound(AccountStorageError):
class ReverterError(Error): class ReverterError(Error):
"""Let's Encrypt Reverter error.""" """Certbot Reverter error."""
class SubprocessError(Error): class SubprocessError(Error):
@@ -54,7 +54,7 @@ class FailedChallenges(AuthorizationError):
# Plugin Errors # Plugin Errors
class PluginError(Error): class PluginError(Error):
"""Let's Encrypt Plugin error.""" """Certbot Plugin error."""
class PluginEnhancementAlreadyPresent(Error): class PluginEnhancementAlreadyPresent(Error):
@@ -66,15 +66,15 @@ class PluginSelectionError(Error):
class NoInstallationError(PluginError): class NoInstallationError(PluginError):
"""Let's Encrypt No Installation error.""" """Certbot No Installation error."""
class MisconfigurationError(PluginError): class MisconfigurationError(PluginError):
"""Let's Encrypt Misconfiguration error.""" """Certbot Misconfiguration error."""
class NotSupportedError(PluginError): class NotSupportedError(PluginError):
"""Let's Encrypt Plugin function not supported error.""" """Certbot Plugin function not supported error."""
class StandaloneBindError(Error): class StandaloneBindError(Error):
+5 -5
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt client interfaces.""" """Certbot client interfaces."""
import abc import abc
import zope.interface import zope.interface
@@ -97,7 +97,7 @@ class IPluginFactory(zope.interface.Interface):
class IPlugin(zope.interface.Interface): class IPlugin(zope.interface.Interface):
"""Let's Encrypt plugin.""" """Certbot plugin."""
def prepare(): def prepare():
"""Prepare the plugin. """Prepare the plugin.
@@ -130,7 +130,7 @@ class IPlugin(zope.interface.Interface):
class IAuthenticator(IPlugin): class IAuthenticator(IPlugin):
"""Generic Let's Encrypt Authenticator. """Generic Certbot Authenticator.
Class represents all possible tools processes that have the Class represents all possible tools processes that have the
ability to perform challenges and attain a certificate. ability to perform challenges and attain a certificate.
@@ -190,7 +190,7 @@ class IAuthenticator(IPlugin):
class IConfig(zope.interface.Interface): class IConfig(zope.interface.Interface):
"""Let's Encrypt user-supplied configuration. """Certbot user-supplied configuration.
.. warning:: The values stored in the configuration have not been .. warning:: The values stored in the configuration have not been
filtered, stripped or sanitized. filtered, stripped or sanitized.
@@ -230,7 +230,7 @@ class IConfig(zope.interface.Interface):
class IInstaller(IPlugin): class IInstaller(IPlugin):
"""Generic Let's Encrypt Installer Interface. """Generic Certbot Installer Interface.
Represents any server that an X509 certificate can be placed. Represents any server that an X509 certificate can be placed.
+1 -1
View File
@@ -1,4 +1,4 @@
"""Utilities for all Let's Encrypt.""" """Utilities for all Certbot."""
import argparse import argparse
import collections import collections
import errno import errno
+4 -4
View File
@@ -1,4 +1,4 @@
"""Let's Encrypt main entry point.""" """Certbot main entry point."""
from __future__ import print_function from __future__ import print_function
import atexit import atexit
import functools import functools
@@ -38,14 +38,14 @@ logger = logging.getLogger(__name__)
def _suggest_donation_if_appropriate(config, action): def _suggest_donation_if_appropriate(config, action):
"""Potentially suggest a donation to support Let's Encrypt.""" """Potentially suggest a donation to support Certbot."""
if config.staging or config.verb == "renew": if config.staging or config.verb == "renew":
# --dry-run implies --staging # --dry-run implies --staging
return return
if action not in ["renew", "newcert"]: if action not in ["renew", "newcert"]:
return return
reporter_util = zope.component.getUtility(interfaces.IReporter) reporter_util = zope.component.getUtility(interfaces.IReporter)
msg = ("If you like Let's Encrypt, please consider supporting our work by:\n\n" msg = ("If you like Certbot, please consider supporting our work by:\n\n"
"Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate\n" "Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate\n"
"Donating to EFF: https://eff.org/donate-le\n\n") "Donating to EFF: https://eff.org/donate-le\n\n")
reporter_util.add_message(msg, reporter_util.LOW_PRIORITY) reporter_util.add_message(msg, reporter_util.LOW_PRIORITY)
@@ -289,7 +289,7 @@ def _report_new_cert(cert_path, fullchain_path):
# and say something more informative here. # and say something more informative here.
msg = ("Congratulations! Your certificate {0} been saved at {1}." msg = ("Congratulations! Your certificate {0} been saved at {1}."
" Your cert will expire on {2}. To obtain a new version of the " " Your cert will expire on {2}. To obtain a new version of the "
"certificate in the future, simply run Let's Encrypt again." "certificate in the future, simply run Certbot again."
.format(and_chain, path, expiry)) .format(and_chain, path, expiry))
reporter_util.add_message(msg, reporter_util.MEDIUM_PRIORITY) reporter_util.add_message(msg, reporter_util.MEDIUM_PRIORITY)
+1 -1
View File
@@ -14,7 +14,7 @@ def notify(subject, whom, what):
""" """
msg = email.message_from_string(what) msg = email.message_from_string(what)
msg.add_header("From", "Let's Encrypt renewal agent <root>") msg.add_header("From", "Certbot renewal agent <root>")
msg.add_header("To", whom) msg.add_header("To", whom)
msg.add_header("Subject", subject) msg.add_header("Subject", subject)
msg = msg.as_string() msg = msg.as_string()
+1 -1
View File
@@ -1 +1 @@
"""Let's Encrypt client.plugins.""" """Certbot client.plugins."""
+1 -1
View File
@@ -33,7 +33,7 @@ def pick_installer(config, default, plugins,
def pick_authenticator( def pick_authenticator(
config, default, plugins, question="How would you " config, default, plugins, question="How would you "
"like to authenticate with the Let's Encrypt CA?"): "like to authenticate with the ACME CA?"):
"""Pick authentication plugin.""" """Pick authentication plugin."""
return pick_plugin( return pick_plugin(
config, default, plugins, question, (interfaces.IAuthenticator,)) config, default, plugins, question, (interfaces.IAuthenticator,))
+2 -3
View File
@@ -80,7 +80,7 @@ class Reverter(object):
if not backups: if not backups:
logger.warning( logger.warning(
"Let's Encrypt hasn't modified your configuration, so rollback " "Certbot hasn't modified your configuration, so rollback "
"isn't available.") "isn't available.")
elif len(backups) < rollback: elif len(backups) < rollback:
logger.warning("Unable to rollback %d checkpoints, only %d exist", logger.warning("Unable to rollback %d checkpoints, only %d exist",
@@ -112,8 +112,7 @@ class Reverter(object):
if num: if num:
backups = backups[:num] backups = backups[:num]
if not backups: if not backups:
logger.info("The Let's Encrypt client has not saved any backups " logger.info("Certbot has not saved backups of your configuration")
"of your configuration")
return return
# Make sure there isn't anything unexpected in the backup folder # Make sure there isn't anything unexpected in the backup folder
+3 -3
View File
@@ -186,9 +186,9 @@ def relevant_values(all_values):
class RenewableCert(object): # pylint: disable=too-many-instance-attributes class RenewableCert(object): # pylint: disable=too-many-instance-attributes
"""Renewable certificate. """Renewable certificate.
Represents a lineage of certificates that is under the management Represents a lineage of certificates that is under the management of
of the Let's Encrypt client, indicated by the existence of an Certbot, indicated by the existence of an associated renewal
associated renewal configuration file. configuration file.
Note that the notion of "current version" for a lineage is Note that the notion of "current version" for a lineage is
maintained on disk in the structure of symbolic links, and is not maintained on disk in the structure of symbolic links, and is not
+1 -1
View File
@@ -1 +1 @@
"""Let's Encrypt Tests""" """Certbot Tests"""
+1 -1
View File
@@ -1 +1 @@
"""Let's Encrypt Display Tests""" """Certbot Display Tests"""
+1 -1
View File
@@ -96,7 +96,7 @@ class ReverterCheckpointLocalTest(unittest.TestCase):
self.reverter.register_file_creation(True, self.config2) self.reverter.register_file_creation(True, self.config2)
self.reverter.register_file_creation(True, config3, config4) self.reverter.register_file_creation(True, config3, config4)
# Simulate Let's Encrypt crash... recovery routine is run # Simulate Certbot crash... recovery routine is run
self.reverter.recovery_routine() self.reverter.recovery_routine()
self.assertFalse(os.path.isfile(self.config1)) self.assertFalse(os.path.isfile(self.config1))