mirror of
https://github.com/certbot/certbot.git
synced 2026-07-31 18:45:40 +02:00
Merge remote-tracking branch 'github/letsencrypt/master' into pkgs_sep_prep
This commit is contained in:
+7
-3
@@ -17,11 +17,15 @@ It's all automated:
|
||||
* If domain control has been proven, a certificate will get issued and the tool
|
||||
will automatically install it.
|
||||
|
||||
All you need to do is:
|
||||
All you need to do is::
|
||||
|
||||
::
|
||||
user@www:~$ sudo letsencrypt -d www.example.org auth
|
||||
|
||||
user@www:~$ sudo letsencrypt -d www.example.org
|
||||
and if you have a compatbile web server (Apache), Let's Encrypt can
|
||||
not only get a new certificate, but also deploy it and configure your
|
||||
server automatically!::
|
||||
|
||||
user@www:~$ sudo letsencrypt -d www.example.org run
|
||||
|
||||
|
||||
**Encrypt ALL the things!**
|
||||
|
||||
@@ -54,7 +54,6 @@ Installation
|
||||
|
||||
virtualenv --no-site-packages -p python2 venv
|
||||
./venv/bin/pip install -r requirements.txt
|
||||
sudo ./venv/bin/letsencrypt
|
||||
|
||||
|
||||
Usage
|
||||
|
||||
@@ -76,7 +76,7 @@ class Client(object):
|
||||
def register(self):
|
||||
"""New Registration with the ACME server."""
|
||||
self.account = self.network.register_from_account(self.account)
|
||||
if self.account.terms_of_service:
|
||||
if self.account.terms_of_service is not None:
|
||||
if not self.config.tos:
|
||||
# TODO: Replace with self.account.terms_of_service
|
||||
eula = pkg_resources.resource_string("letsencrypt", "EULA")
|
||||
@@ -171,13 +171,13 @@ class Client(object):
|
||||
logging.info("Server issued certificate; certificate written to %s",
|
||||
act_cert_path)
|
||||
|
||||
if certr.cert_chain_uri:
|
||||
if certr.cert_chain_uri is not None:
|
||||
# TODO: Except
|
||||
chain_cert = self.network.fetch_chain(certr.cert_chain_uri)
|
||||
if chain_cert:
|
||||
chain_cert = self.network.fetch_chain(certr)
|
||||
if chain_cert is not None:
|
||||
chain_file, act_chain_path = le_util.unique_file(
|
||||
chain_path, 0o644)
|
||||
chain_pem = chain_cert.to_pem()
|
||||
chain_pem = chain_cert.as_pem()
|
||||
try:
|
||||
chain_file.write(chain_pem)
|
||||
finally:
|
||||
|
||||
@@ -22,7 +22,7 @@ def choose_plugin(prepared, question):
|
||||
:rtype: `~.PluginEntryPoint`
|
||||
|
||||
"""
|
||||
opts = [plugin_ep.name_with_description
|
||||
opts = [plugin_ep.description_with_name
|
||||
+ (" [Misconfigured]" if plugin_ep.misconfigured else "")
|
||||
for plugin_ep in prepared]
|
||||
|
||||
|
||||
@@ -39,9 +39,9 @@ class PluginEntryPoint(object):
|
||||
return self.plugin_cls.description
|
||||
|
||||
@property
|
||||
def name_with_description(self):
|
||||
"""Name with description. Handy for UI."""
|
||||
return "{0} ({1})".format(self.name, self.description)
|
||||
def description_with_name(self):
|
||||
"""Description with name. Handy for UI."""
|
||||
return "{0} ({1})".format(self.description, self.name)
|
||||
|
||||
def ifaces(self, *ifaces_groups):
|
||||
"""Does plugin implements specified interface groups?"""
|
||||
|
||||
@@ -52,9 +52,10 @@ class PluginEntryPointTest(unittest.TestCase):
|
||||
def test_description(self):
|
||||
self.assertEqual("Standalone Authenticator", self.plugin_ep.description)
|
||||
|
||||
def test_name_with_description(self):
|
||||
self.assertTrue(
|
||||
self.plugin_ep.name_with_description.startswith("sa ("))
|
||||
def test_description_with_name(self):
|
||||
self.plugin_ep.plugin_cls = mock.MagicMock(description="Desc")
|
||||
self.assertEqual(
|
||||
"Desc (sa)", self.plugin_ep.description_with_name)
|
||||
|
||||
def test_ifaces(self):
|
||||
self.assertTrue(self.plugin_ep.ifaces((interfaces.IAuthenticator,)))
|
||||
|
||||
@@ -410,7 +410,7 @@ class StandaloneAuthenticator(common.Plugin):
|
||||
def more_info(self): # pylint: disable=no-self-use
|
||||
"""Human-readable string that describes the Authenticator."""
|
||||
return ("The Standalone Authenticator uses PyOpenSSL to listen "
|
||||
"on port 443 and perform DVSNI challenges. Once a certificate"
|
||||
"on port 443 and perform DVSNI challenges. Once a certificate "
|
||||
"is attained, it will be saved in the "
|
||||
"(TODO) current working directory.{0}{0}"
|
||||
"TCP port 443 must be available in order to use the "
|
||||
|
||||
@@ -20,9 +20,9 @@ class ChoosePluginTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
zope.component.provideUtility(display_util.FileDisplay(sys.stdout))
|
||||
self.mock_apache = mock.Mock(
|
||||
name_with_description="a", misconfigured=True)
|
||||
description_with_name="a", misconfigured=True)
|
||||
self.mock_stand = mock.Mock(
|
||||
name_with_description="s", misconfigured=False)
|
||||
description_with_name="s", misconfigured=False)
|
||||
self.mock_stand.init().more_info.return_value = "standalone"
|
||||
self.plugins = [
|
||||
self.mock_apache,
|
||||
|
||||
Reference in New Issue
Block a user