mirror of
https://github.com/certbot/certbot.git
synced 2026-08-03 00:22:04 +02:00
Release 0.22.0
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Please update tox.ini when modifying dependency version requirements
|
# Please update tox.ini when modifying dependency version requirements
|
||||||
install_requires = [
|
install_requires = [
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
+66
-38
@@ -31,7 +31,7 @@ if [ -z "$VENV_PATH" ]; then
|
|||||||
fi
|
fi
|
||||||
VENV_BIN="$VENV_PATH/bin"
|
VENV_BIN="$VENV_PATH/bin"
|
||||||
BOOTSTRAP_VERSION_PATH="$VENV_PATH/certbot-auto-bootstrap-version.txt"
|
BOOTSTRAP_VERSION_PATH="$VENV_PATH/certbot-auto-bootstrap-version.txt"
|
||||||
LE_AUTO_VERSION="0.21.1"
|
LE_AUTO_VERSION="0.22.0"
|
||||||
BASENAME=$(basename $0)
|
BASENAME=$(basename $0)
|
||||||
USAGE="Usage: $BASENAME [OPTIONS]
|
USAGE="Usage: $BASENAME [OPTIONS]
|
||||||
A self-updating wrapper script for the Certbot ACME client. When run, updates
|
A self-updating wrapper script for the Certbot ACME client. When run, updates
|
||||||
@@ -47,6 +47,7 @@ Help for certbot itself cannot be provided until it is installed.
|
|||||||
--no-bootstrap do not install OS dependencies
|
--no-bootstrap do not install OS dependencies
|
||||||
--no-self-upgrade do not download updates
|
--no-self-upgrade do not download updates
|
||||||
--os-packages-only install OS dependencies and exit
|
--os-packages-only install OS dependencies and exit
|
||||||
|
--install-only install certbot, upgrade if needed, and exit
|
||||||
-v, --verbose provide more output
|
-v, --verbose provide more output
|
||||||
-q, --quiet provide only update/error output;
|
-q, --quiet provide only update/error output;
|
||||||
implies --non-interactive
|
implies --non-interactive
|
||||||
@@ -60,6 +61,8 @@ for arg in "$@" ; do
|
|||||||
DEBUG=1;;
|
DEBUG=1;;
|
||||||
--os-packages-only)
|
--os-packages-only)
|
||||||
OS_PACKAGES_ONLY=1;;
|
OS_PACKAGES_ONLY=1;;
|
||||||
|
--install-only)
|
||||||
|
INSTALL_ONLY=1;;
|
||||||
--no-self-upgrade)
|
--no-self-upgrade)
|
||||||
# Do not upgrade this script (also prevents client upgrades, because each
|
# Do not upgrade this script (also prevents client upgrades, because each
|
||||||
# copy of the script pins a hash of the python client)
|
# copy of the script pins a hash of the python client)
|
||||||
@@ -246,7 +249,7 @@ DeprecationBootstrap() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
MIN_PYTHON_VERSION="2.6"
|
MIN_PYTHON_VERSION="2.7"
|
||||||
MIN_PYVER=$(echo "$MIN_PYTHON_VERSION" | sed 's/\.//')
|
MIN_PYVER=$(echo "$MIN_PYTHON_VERSION" | sed 's/\.//')
|
||||||
# Sets LE_PYTHON to Python version string and PYVER to the first two
|
# Sets LE_PYTHON to Python version string and PYVER to the first two
|
||||||
# digits of the python version
|
# digits of the python version
|
||||||
@@ -1196,24 +1199,24 @@ letsencrypt==0.7.0 \
|
|||||||
--hash=sha256:105a5fb107e45bcd0722eb89696986dcf5f08a86a321d6aef25a0c7c63375ade \
|
--hash=sha256:105a5fb107e45bcd0722eb89696986dcf5f08a86a321d6aef25a0c7c63375ade \
|
||||||
--hash=sha256:c36e532c486a7e92155ee09da54b436a3c420813ec1c590b98f635d924720de9
|
--hash=sha256:c36e532c486a7e92155ee09da54b436a3c420813ec1c590b98f635d924720de9
|
||||||
|
|
||||||
certbot==0.21.1 \
|
certbot==0.22.0 \
|
||||||
--hash=sha256:08f026078807fbcfd7bfab44c4d827ee287738fefcc86fbe1493ce752d2fdccb \
|
--hash=sha256:ebfeaf9737dc440a9f263099487523ab4c8d8da9def31a71327439d9186e00fa \
|
||||||
--hash=sha256:e6c8e9b0b5e38834330831d5a91e1c08accdb9b4923855d14d524e7327e6c4ea
|
--hash=sha256:ee307dd8f194bd710a3326aa4bacf95d358877498c0b9aa187eff0dc211dcbb3
|
||||||
acme==0.21.1 \
|
acme==0.22.0 \
|
||||||
--hash=sha256:4b2b5ef80c755dfa30eb5c67ab4b4e66e7f205ad922b43170502c5f8d8ef1242 \
|
--hash=sha256:37e6d8e4eb7dd18edac96de209f451300e04074f14be7fce713db6931a0e4a20 \
|
||||||
--hash=sha256:296e8abf4f5a69af1a892416faceea90e15f39e2920bf87beeaad1d6ce70a60b
|
--hash=sha256:4a2cd52db32e914b68d8446c8e788f507c20edebbd1c36d4f3eda7b47c555fe8
|
||||||
certbot-apache==0.21.1 \
|
certbot-apache==0.22.0 \
|
||||||
--hash=sha256:faa4af1033564a0e676d16940775593fb849527b494a15f6a816ad0ed4fa273c \
|
--hash=sha256:e91f6ec8203b636fa44f01017646fca68406224ee327fd56017103b78bc65539 \
|
||||||
--hash=sha256:0bce4419d4fdabbdda2223cff8db6794c5717632fb9511b00498ec00982a3fa5
|
--hash=sha256:8fbab1a358ec131996d1c00f7d0ed18ee3624f8469cab3962dfd8ba40ca3e7cd
|
||||||
certbot-nginx==0.21.1 \
|
certbot-nginx==0.22.0 \
|
||||||
--hash=sha256:3fad3b4722544558ce03132f853e18da5e516013086aaa40f1036aa6667c70a9 \
|
--hash=sha256:d67210cf73cf44e8aeff04f6f228d8bde74444703ce3ccd929a450685b58c30b \
|
||||||
--hash=sha256:55a32afe0950ff49d3118f93035463a46c85c2f399d261123f5fe973afdd4f64
|
--hash=sha256:b2b26bf9112062b02518407704cad09f7136322163d529a2dde3b6e1578ecb8c
|
||||||
|
|
||||||
UNLIKELY_EOF
|
UNLIKELY_EOF
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
cat << "UNLIKELY_EOF" > "$TEMP_DIR/pipstrap.py"
|
cat << "UNLIKELY_EOF" > "$TEMP_DIR/pipstrap.py"
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
"""A small script that can act as a trust root for installing pip 8
|
"""A small script that can act as a trust root for installing pip >=8
|
||||||
|
|
||||||
Embed this in your project, and your VCS checkout is all you have to trust. In
|
Embed this in your project, and your VCS checkout is all you have to trust. In
|
||||||
a post-peep era, this lets you claw your way to a hash-checking version of pip,
|
a post-peep era, this lets you claw your way to a hash-checking version of pip,
|
||||||
@@ -1237,6 +1240,7 @@ anything goes wrong, it will exit with a non-zero status code.
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from distutils.version import StrictVersion
|
from distutils.version import StrictVersion
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
|
from os import environ
|
||||||
from os.path import join
|
from os.path import join
|
||||||
from pipes import quote
|
from pipes import quote
|
||||||
from shutil import rmtree
|
from shutil import rmtree
|
||||||
@@ -1270,14 +1274,14 @@ except ImportError:
|
|||||||
from urllib.parse import urlparse # 3.4
|
from urllib.parse import urlparse # 3.4
|
||||||
|
|
||||||
|
|
||||||
__version__ = 1, 3, 0
|
__version__ = 1, 5, 1
|
||||||
PIP_VERSION = '9.0.1'
|
PIP_VERSION = '9.0.1'
|
||||||
|
DEFAULT_INDEX_BASE = 'https://pypi.python.org'
|
||||||
|
|
||||||
|
|
||||||
# wheel has a conditional dependency on argparse:
|
# wheel has a conditional dependency on argparse:
|
||||||
maybe_argparse = (
|
maybe_argparse = (
|
||||||
[('https://pypi.python.org/packages/18/dd/'
|
[('18/dd/e617cfc3f6210ae183374cd9f6a26b20514bbb5a792af97949c5aacddf0f/'
|
||||||
'e617cfc3f6210ae183374cd9f6a26b20514bbb5a792af97949c5aacddf0f/'
|
|
||||||
'argparse-1.4.0.tar.gz',
|
'argparse-1.4.0.tar.gz',
|
||||||
'62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4')]
|
'62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4')]
|
||||||
if version_info < (2, 7, 0) else [])
|
if version_info < (2, 7, 0) else [])
|
||||||
@@ -1285,18 +1289,14 @@ maybe_argparse = (
|
|||||||
|
|
||||||
PACKAGES = maybe_argparse + [
|
PACKAGES = maybe_argparse + [
|
||||||
# Pip has no dependencies, as it vendors everything:
|
# Pip has no dependencies, as it vendors everything:
|
||||||
('https://pypi.python.org/packages/11/b6/'
|
('11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/'
|
||||||
'abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/'
|
'pip-{0}.tar.gz'.format(PIP_VERSION),
|
||||||
'pip-{0}.tar.gz'
|
|
||||||
.format(PIP_VERSION),
|
|
||||||
'09f243e1a7b461f654c26a725fa373211bb7ff17a9300058b205c61658ca940d'),
|
'09f243e1a7b461f654c26a725fa373211bb7ff17a9300058b205c61658ca940d'),
|
||||||
# This version of setuptools has only optional dependencies:
|
# This version of setuptools has only optional dependencies:
|
||||||
('https://pypi.python.org/packages/69/65/'
|
('59/88/2f3990916931a5de6fa9706d6d75eb32ee8b78627bb2abaab7ed9e6d0622/'
|
||||||
'4c544cde88d4d876cdf5cbc5f3f15d02646477756d89547e9a7ecd6afa76/'
|
'setuptools-29.0.1.tar.gz',
|
||||||
'setuptools-20.2.2.tar.gz',
|
'b539118819a4857378398891fa5366e090690e46b3e41421a1e07d6e9fd8feb0'),
|
||||||
'24fcfc15364a9fe09a220f37d2dcedc849795e3de3e4b393ee988e66a9cbd85a'),
|
('c9/1d/bd19e691fd4cfe908c76c429fe6e4436c9e83583c4414b54f6c85471954a/'
|
||||||
('https://pypi.python.org/packages/c9/1d/'
|
|
||||||
'bd19e691fd4cfe908c76c429fe6e4436c9e83583c4414b54f6c85471954a/'
|
|
||||||
'wheel-0.29.0.tar.gz',
|
'wheel-0.29.0.tar.gz',
|
||||||
'1ebb8ad7e26b448e9caa4773d2357849bf80ff9e313964bcaf79cbf0201a1648')
|
'1ebb8ad7e26b448e9caa4773d2357849bf80ff9e313964bcaf79cbf0201a1648')
|
||||||
]
|
]
|
||||||
@@ -1317,12 +1317,13 @@ def hashed_download(url, temp, digest):
|
|||||||
# >=2.7.9 verifies HTTPS certs itself, and, in any case, the cert
|
# >=2.7.9 verifies HTTPS certs itself, and, in any case, the cert
|
||||||
# authenticity has only privacy (not arbitrary code execution)
|
# authenticity has only privacy (not arbitrary code execution)
|
||||||
# implications, since we're checking hashes.
|
# implications, since we're checking hashes.
|
||||||
def opener():
|
def opener(using_https=True):
|
||||||
opener = build_opener(HTTPSHandler())
|
opener = build_opener(HTTPSHandler())
|
||||||
# Strip out HTTPHandler to prevent MITM spoof:
|
if using_https:
|
||||||
for handler in opener.handlers:
|
# Strip out HTTPHandler to prevent MITM spoof:
|
||||||
if isinstance(handler, HTTPHandler):
|
for handler in opener.handlers:
|
||||||
opener.handlers.remove(handler)
|
if isinstance(handler, HTTPHandler):
|
||||||
|
opener.handlers.remove(handler)
|
||||||
return opener
|
return opener
|
||||||
|
|
||||||
def read_chunks(response, chunk_size):
|
def read_chunks(response, chunk_size):
|
||||||
@@ -1332,8 +1333,9 @@ def hashed_download(url, temp, digest):
|
|||||||
break
|
break
|
||||||
yield chunk
|
yield chunk
|
||||||
|
|
||||||
response = opener().open(url)
|
parsed_url = urlparse(url)
|
||||||
path = join(temp, urlparse(url).path.split('/')[-1])
|
response = opener(using_https=parsed_url.scheme == 'https').open(url)
|
||||||
|
path = join(temp, parsed_url.path.split('/')[-1])
|
||||||
actual_hash = sha256()
|
actual_hash = sha256()
|
||||||
with open(path, 'wb') as file:
|
with open(path, 'wb') as file:
|
||||||
for chunk in read_chunks(response, 4096):
|
for chunk in read_chunks(response, 4096):
|
||||||
@@ -1346,6 +1348,24 @@ def hashed_download(url, temp, digest):
|
|||||||
return path
|
return path
|
||||||
|
|
||||||
|
|
||||||
|
def get_index_base():
|
||||||
|
"""Return the URL to the dir containing the "packages" folder.
|
||||||
|
|
||||||
|
Try to wring something out of PIP_INDEX_URL, if set. Hack "/simple" off the
|
||||||
|
end if it's there; that is likely to give us the right dir.
|
||||||
|
|
||||||
|
"""
|
||||||
|
env_var = environ.get('PIP_INDEX_URL', '').rstrip('/')
|
||||||
|
if env_var:
|
||||||
|
SIMPLE = '/simple'
|
||||||
|
if env_var.endswith(SIMPLE):
|
||||||
|
return env_var[:-len(SIMPLE)]
|
||||||
|
else:
|
||||||
|
return env_var
|
||||||
|
else:
|
||||||
|
return DEFAULT_INDEX_BASE
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
pip_version = StrictVersion(check_output(['pip', '--version'])
|
pip_version = StrictVersion(check_output(['pip', '--version'])
|
||||||
.decode('utf-8').split()[1])
|
.decode('utf-8').split()[1])
|
||||||
@@ -1353,11 +1373,13 @@ def main():
|
|||||||
if pip_version >= min_pip_version:
|
if pip_version >= min_pip_version:
|
||||||
return 0
|
return 0
|
||||||
has_pip_cache = pip_version >= StrictVersion('6.0')
|
has_pip_cache = pip_version >= StrictVersion('6.0')
|
||||||
|
index_base = get_index_base()
|
||||||
temp = mkdtemp(prefix='pipstrap-')
|
temp = mkdtemp(prefix='pipstrap-')
|
||||||
try:
|
try:
|
||||||
downloads = [hashed_download(url, temp, digest)
|
downloads = [hashed_download(index_base + '/packages/' + path,
|
||||||
for url, digest in PACKAGES]
|
temp,
|
||||||
|
digest)
|
||||||
|
for path, digest in PACKAGES]
|
||||||
check_output('pip install --no-index --no-deps -U ' +
|
check_output('pip install --no-index --no-deps -U ' +
|
||||||
# Disable cache since we're not using it and it otherwise
|
# Disable cache since we're not using it and it otherwise
|
||||||
# sometimes throws permission warnings:
|
# sometimes throws permission warnings:
|
||||||
@@ -1428,6 +1450,12 @@ UNLIKELY_EOF
|
|||||||
|
|
||||||
say "Installation succeeded."
|
say "Installation succeeded."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$INSTALL_ONLY" = 1 ]; then
|
||||||
|
say "Certbot is installed."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
"$VENV_BIN/letsencrypt" "$@"
|
"$VENV_BIN/letsencrypt" "$@"
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'certbot',
|
'certbot',
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import sys
|
|||||||
from distutils.core import setup
|
from distutils.core import setup
|
||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from setuptools import setup
|
|||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
version = '0.22.0.dev0'
|
version = '0.22.0'
|
||||||
|
|
||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
"""Certbot 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.22.0.dev0'
|
__version__ = '0.22.0'
|
||||||
|
|||||||
+6
-6
@@ -107,9 +107,9 @@ optional arguments:
|
|||||||
case, and to know when to deprecate support for past
|
case, and to know when to deprecate support for past
|
||||||
Python versions and flags. If you wish to hide this
|
Python versions and flags. If you wish to hide this
|
||||||
information from the Let's Encrypt server, set this to
|
information from the Let's Encrypt server, set this to
|
||||||
"". (default: CertbotACMEClient/0.21.1 (certbot;
|
"". (default: CertbotACMEClient/0.22.0 (certbot;
|
||||||
darwin 10.13.3) Authenticator/XXX Installer/YYY
|
darwin 10.13.3) Authenticator/XXX Installer/YYY
|
||||||
(SUBCOMMAND; flags: FLAGS) Py/2.7.14). The flags
|
(SUBCOMMAND; flags: FLAGS) Py/3.6.4). The flags
|
||||||
encoded in the user agent are: --duplicate, --force-
|
encoded in the user agent are: --duplicate, --force-
|
||||||
renew, --allow-subset-of-names, -n, and whether any
|
renew, --allow-subset-of-names, -n, and whether any
|
||||||
hooks are set.
|
hooks are set.
|
||||||
@@ -199,8 +199,8 @@ testing:
|
|||||||
|
|
||||||
--test-cert, --staging
|
--test-cert, --staging
|
||||||
Use the staging server to obtain or revoke test
|
Use the staging server to obtain or revoke test
|
||||||
(invalid) certificates; equivalent to --server https
|
(invalid) certificates; equivalent to --server
|
||||||
://acme-staging.api.letsencrypt.org/directory
|
https://acme-staging.api.letsencrypt.org/directory
|
||||||
(default: False)
|
(default: False)
|
||||||
--debug Show tracebacks in case of errors, and allow certbot-
|
--debug Show tracebacks in case of errors, and allow certbot-
|
||||||
auto execution on experimental platforms (default:
|
auto execution on experimental platforms (default:
|
||||||
@@ -308,8 +308,8 @@ renew:
|
|||||||
of renewed certificate domains (for example,
|
of renewed certificate domains (for example,
|
||||||
"example.com www.example.com" (default: None)
|
"example.com www.example.com" (default: None)
|
||||||
--disable-hook-validation
|
--disable-hook-validation
|
||||||
Ordinarily the commands specified for --pre-hook
|
Ordinarily the commands specified for --pre-
|
||||||
/--post-hook/--deploy-hook will be checked for
|
hook/--post-hook/--deploy-hook will be checked for
|
||||||
validity, to see if the programs being run are in the
|
validity, to see if the programs being run are in the
|
||||||
$PATH, so that mistakes can be caught early, even when
|
$PATH, so that mistakes can be caught early, even when
|
||||||
the hooks aren't being run just yet. The validation is
|
the hooks aren't being run just yet. The validation is
|
||||||
|
|||||||
+66
-38
@@ -31,7 +31,7 @@ if [ -z "$VENV_PATH" ]; then
|
|||||||
fi
|
fi
|
||||||
VENV_BIN="$VENV_PATH/bin"
|
VENV_BIN="$VENV_PATH/bin"
|
||||||
BOOTSTRAP_VERSION_PATH="$VENV_PATH/certbot-auto-bootstrap-version.txt"
|
BOOTSTRAP_VERSION_PATH="$VENV_PATH/certbot-auto-bootstrap-version.txt"
|
||||||
LE_AUTO_VERSION="0.21.1"
|
LE_AUTO_VERSION="0.22.0"
|
||||||
BASENAME=$(basename $0)
|
BASENAME=$(basename $0)
|
||||||
USAGE="Usage: $BASENAME [OPTIONS]
|
USAGE="Usage: $BASENAME [OPTIONS]
|
||||||
A self-updating wrapper script for the Certbot ACME client. When run, updates
|
A self-updating wrapper script for the Certbot ACME client. When run, updates
|
||||||
@@ -47,6 +47,7 @@ Help for certbot itself cannot be provided until it is installed.
|
|||||||
--no-bootstrap do not install OS dependencies
|
--no-bootstrap do not install OS dependencies
|
||||||
--no-self-upgrade do not download updates
|
--no-self-upgrade do not download updates
|
||||||
--os-packages-only install OS dependencies and exit
|
--os-packages-only install OS dependencies and exit
|
||||||
|
--install-only install certbot, upgrade if needed, and exit
|
||||||
-v, --verbose provide more output
|
-v, --verbose provide more output
|
||||||
-q, --quiet provide only update/error output;
|
-q, --quiet provide only update/error output;
|
||||||
implies --non-interactive
|
implies --non-interactive
|
||||||
@@ -60,6 +61,8 @@ for arg in "$@" ; do
|
|||||||
DEBUG=1;;
|
DEBUG=1;;
|
||||||
--os-packages-only)
|
--os-packages-only)
|
||||||
OS_PACKAGES_ONLY=1;;
|
OS_PACKAGES_ONLY=1;;
|
||||||
|
--install-only)
|
||||||
|
INSTALL_ONLY=1;;
|
||||||
--no-self-upgrade)
|
--no-self-upgrade)
|
||||||
# Do not upgrade this script (also prevents client upgrades, because each
|
# Do not upgrade this script (also prevents client upgrades, because each
|
||||||
# copy of the script pins a hash of the python client)
|
# copy of the script pins a hash of the python client)
|
||||||
@@ -246,7 +249,7 @@ DeprecationBootstrap() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
MIN_PYTHON_VERSION="2.6"
|
MIN_PYTHON_VERSION="2.7"
|
||||||
MIN_PYVER=$(echo "$MIN_PYTHON_VERSION" | sed 's/\.//')
|
MIN_PYVER=$(echo "$MIN_PYTHON_VERSION" | sed 's/\.//')
|
||||||
# Sets LE_PYTHON to Python version string and PYVER to the first two
|
# Sets LE_PYTHON to Python version string and PYVER to the first two
|
||||||
# digits of the python version
|
# digits of the python version
|
||||||
@@ -1196,24 +1199,24 @@ letsencrypt==0.7.0 \
|
|||||||
--hash=sha256:105a5fb107e45bcd0722eb89696986dcf5f08a86a321d6aef25a0c7c63375ade \
|
--hash=sha256:105a5fb107e45bcd0722eb89696986dcf5f08a86a321d6aef25a0c7c63375ade \
|
||||||
--hash=sha256:c36e532c486a7e92155ee09da54b436a3c420813ec1c590b98f635d924720de9
|
--hash=sha256:c36e532c486a7e92155ee09da54b436a3c420813ec1c590b98f635d924720de9
|
||||||
|
|
||||||
certbot==0.21.1 \
|
certbot==0.22.0 \
|
||||||
--hash=sha256:08f026078807fbcfd7bfab44c4d827ee287738fefcc86fbe1493ce752d2fdccb \
|
--hash=sha256:ebfeaf9737dc440a9f263099487523ab4c8d8da9def31a71327439d9186e00fa \
|
||||||
--hash=sha256:e6c8e9b0b5e38834330831d5a91e1c08accdb9b4923855d14d524e7327e6c4ea
|
--hash=sha256:ee307dd8f194bd710a3326aa4bacf95d358877498c0b9aa187eff0dc211dcbb3
|
||||||
acme==0.21.1 \
|
acme==0.22.0 \
|
||||||
--hash=sha256:4b2b5ef80c755dfa30eb5c67ab4b4e66e7f205ad922b43170502c5f8d8ef1242 \
|
--hash=sha256:37e6d8e4eb7dd18edac96de209f451300e04074f14be7fce713db6931a0e4a20 \
|
||||||
--hash=sha256:296e8abf4f5a69af1a892416faceea90e15f39e2920bf87beeaad1d6ce70a60b
|
--hash=sha256:4a2cd52db32e914b68d8446c8e788f507c20edebbd1c36d4f3eda7b47c555fe8
|
||||||
certbot-apache==0.21.1 \
|
certbot-apache==0.22.0 \
|
||||||
--hash=sha256:faa4af1033564a0e676d16940775593fb849527b494a15f6a816ad0ed4fa273c \
|
--hash=sha256:e91f6ec8203b636fa44f01017646fca68406224ee327fd56017103b78bc65539 \
|
||||||
--hash=sha256:0bce4419d4fdabbdda2223cff8db6794c5717632fb9511b00498ec00982a3fa5
|
--hash=sha256:8fbab1a358ec131996d1c00f7d0ed18ee3624f8469cab3962dfd8ba40ca3e7cd
|
||||||
certbot-nginx==0.21.1 \
|
certbot-nginx==0.22.0 \
|
||||||
--hash=sha256:3fad3b4722544558ce03132f853e18da5e516013086aaa40f1036aa6667c70a9 \
|
--hash=sha256:d67210cf73cf44e8aeff04f6f228d8bde74444703ce3ccd929a450685b58c30b \
|
||||||
--hash=sha256:55a32afe0950ff49d3118f93035463a46c85c2f399d261123f5fe973afdd4f64
|
--hash=sha256:b2b26bf9112062b02518407704cad09f7136322163d529a2dde3b6e1578ecb8c
|
||||||
|
|
||||||
UNLIKELY_EOF
|
UNLIKELY_EOF
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
cat << "UNLIKELY_EOF" > "$TEMP_DIR/pipstrap.py"
|
cat << "UNLIKELY_EOF" > "$TEMP_DIR/pipstrap.py"
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
"""A small script that can act as a trust root for installing pip 8
|
"""A small script that can act as a trust root for installing pip >=8
|
||||||
|
|
||||||
Embed this in your project, and your VCS checkout is all you have to trust. In
|
Embed this in your project, and your VCS checkout is all you have to trust. In
|
||||||
a post-peep era, this lets you claw your way to a hash-checking version of pip,
|
a post-peep era, this lets you claw your way to a hash-checking version of pip,
|
||||||
@@ -1237,6 +1240,7 @@ anything goes wrong, it will exit with a non-zero status code.
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from distutils.version import StrictVersion
|
from distutils.version import StrictVersion
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
|
from os import environ
|
||||||
from os.path import join
|
from os.path import join
|
||||||
from pipes import quote
|
from pipes import quote
|
||||||
from shutil import rmtree
|
from shutil import rmtree
|
||||||
@@ -1270,14 +1274,14 @@ except ImportError:
|
|||||||
from urllib.parse import urlparse # 3.4
|
from urllib.parse import urlparse # 3.4
|
||||||
|
|
||||||
|
|
||||||
__version__ = 1, 3, 0
|
__version__ = 1, 5, 1
|
||||||
PIP_VERSION = '9.0.1'
|
PIP_VERSION = '9.0.1'
|
||||||
|
DEFAULT_INDEX_BASE = 'https://pypi.python.org'
|
||||||
|
|
||||||
|
|
||||||
# wheel has a conditional dependency on argparse:
|
# wheel has a conditional dependency on argparse:
|
||||||
maybe_argparse = (
|
maybe_argparse = (
|
||||||
[('https://pypi.python.org/packages/18/dd/'
|
[('18/dd/e617cfc3f6210ae183374cd9f6a26b20514bbb5a792af97949c5aacddf0f/'
|
||||||
'e617cfc3f6210ae183374cd9f6a26b20514bbb5a792af97949c5aacddf0f/'
|
|
||||||
'argparse-1.4.0.tar.gz',
|
'argparse-1.4.0.tar.gz',
|
||||||
'62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4')]
|
'62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4')]
|
||||||
if version_info < (2, 7, 0) else [])
|
if version_info < (2, 7, 0) else [])
|
||||||
@@ -1285,18 +1289,14 @@ maybe_argparse = (
|
|||||||
|
|
||||||
PACKAGES = maybe_argparse + [
|
PACKAGES = maybe_argparse + [
|
||||||
# Pip has no dependencies, as it vendors everything:
|
# Pip has no dependencies, as it vendors everything:
|
||||||
('https://pypi.python.org/packages/11/b6/'
|
('11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/'
|
||||||
'abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/'
|
'pip-{0}.tar.gz'.format(PIP_VERSION),
|
||||||
'pip-{0}.tar.gz'
|
|
||||||
.format(PIP_VERSION),
|
|
||||||
'09f243e1a7b461f654c26a725fa373211bb7ff17a9300058b205c61658ca940d'),
|
'09f243e1a7b461f654c26a725fa373211bb7ff17a9300058b205c61658ca940d'),
|
||||||
# This version of setuptools has only optional dependencies:
|
# This version of setuptools has only optional dependencies:
|
||||||
('https://pypi.python.org/packages/69/65/'
|
('59/88/2f3990916931a5de6fa9706d6d75eb32ee8b78627bb2abaab7ed9e6d0622/'
|
||||||
'4c544cde88d4d876cdf5cbc5f3f15d02646477756d89547e9a7ecd6afa76/'
|
'setuptools-29.0.1.tar.gz',
|
||||||
'setuptools-20.2.2.tar.gz',
|
'b539118819a4857378398891fa5366e090690e46b3e41421a1e07d6e9fd8feb0'),
|
||||||
'24fcfc15364a9fe09a220f37d2dcedc849795e3de3e4b393ee988e66a9cbd85a'),
|
('c9/1d/bd19e691fd4cfe908c76c429fe6e4436c9e83583c4414b54f6c85471954a/'
|
||||||
('https://pypi.python.org/packages/c9/1d/'
|
|
||||||
'bd19e691fd4cfe908c76c429fe6e4436c9e83583c4414b54f6c85471954a/'
|
|
||||||
'wheel-0.29.0.tar.gz',
|
'wheel-0.29.0.tar.gz',
|
||||||
'1ebb8ad7e26b448e9caa4773d2357849bf80ff9e313964bcaf79cbf0201a1648')
|
'1ebb8ad7e26b448e9caa4773d2357849bf80ff9e313964bcaf79cbf0201a1648')
|
||||||
]
|
]
|
||||||
@@ -1317,12 +1317,13 @@ def hashed_download(url, temp, digest):
|
|||||||
# >=2.7.9 verifies HTTPS certs itself, and, in any case, the cert
|
# >=2.7.9 verifies HTTPS certs itself, and, in any case, the cert
|
||||||
# authenticity has only privacy (not arbitrary code execution)
|
# authenticity has only privacy (not arbitrary code execution)
|
||||||
# implications, since we're checking hashes.
|
# implications, since we're checking hashes.
|
||||||
def opener():
|
def opener(using_https=True):
|
||||||
opener = build_opener(HTTPSHandler())
|
opener = build_opener(HTTPSHandler())
|
||||||
# Strip out HTTPHandler to prevent MITM spoof:
|
if using_https:
|
||||||
for handler in opener.handlers:
|
# Strip out HTTPHandler to prevent MITM spoof:
|
||||||
if isinstance(handler, HTTPHandler):
|
for handler in opener.handlers:
|
||||||
opener.handlers.remove(handler)
|
if isinstance(handler, HTTPHandler):
|
||||||
|
opener.handlers.remove(handler)
|
||||||
return opener
|
return opener
|
||||||
|
|
||||||
def read_chunks(response, chunk_size):
|
def read_chunks(response, chunk_size):
|
||||||
@@ -1332,8 +1333,9 @@ def hashed_download(url, temp, digest):
|
|||||||
break
|
break
|
||||||
yield chunk
|
yield chunk
|
||||||
|
|
||||||
response = opener().open(url)
|
parsed_url = urlparse(url)
|
||||||
path = join(temp, urlparse(url).path.split('/')[-1])
|
response = opener(using_https=parsed_url.scheme == 'https').open(url)
|
||||||
|
path = join(temp, parsed_url.path.split('/')[-1])
|
||||||
actual_hash = sha256()
|
actual_hash = sha256()
|
||||||
with open(path, 'wb') as file:
|
with open(path, 'wb') as file:
|
||||||
for chunk in read_chunks(response, 4096):
|
for chunk in read_chunks(response, 4096):
|
||||||
@@ -1346,6 +1348,24 @@ def hashed_download(url, temp, digest):
|
|||||||
return path
|
return path
|
||||||
|
|
||||||
|
|
||||||
|
def get_index_base():
|
||||||
|
"""Return the URL to the dir containing the "packages" folder.
|
||||||
|
|
||||||
|
Try to wring something out of PIP_INDEX_URL, if set. Hack "/simple" off the
|
||||||
|
end if it's there; that is likely to give us the right dir.
|
||||||
|
|
||||||
|
"""
|
||||||
|
env_var = environ.get('PIP_INDEX_URL', '').rstrip('/')
|
||||||
|
if env_var:
|
||||||
|
SIMPLE = '/simple'
|
||||||
|
if env_var.endswith(SIMPLE):
|
||||||
|
return env_var[:-len(SIMPLE)]
|
||||||
|
else:
|
||||||
|
return env_var
|
||||||
|
else:
|
||||||
|
return DEFAULT_INDEX_BASE
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
pip_version = StrictVersion(check_output(['pip', '--version'])
|
pip_version = StrictVersion(check_output(['pip', '--version'])
|
||||||
.decode('utf-8').split()[1])
|
.decode('utf-8').split()[1])
|
||||||
@@ -1353,11 +1373,13 @@ def main():
|
|||||||
if pip_version >= min_pip_version:
|
if pip_version >= min_pip_version:
|
||||||
return 0
|
return 0
|
||||||
has_pip_cache = pip_version >= StrictVersion('6.0')
|
has_pip_cache = pip_version >= StrictVersion('6.0')
|
||||||
|
index_base = get_index_base()
|
||||||
temp = mkdtemp(prefix='pipstrap-')
|
temp = mkdtemp(prefix='pipstrap-')
|
||||||
try:
|
try:
|
||||||
downloads = [hashed_download(url, temp, digest)
|
downloads = [hashed_download(index_base + '/packages/' + path,
|
||||||
for url, digest in PACKAGES]
|
temp,
|
||||||
|
digest)
|
||||||
|
for path, digest in PACKAGES]
|
||||||
check_output('pip install --no-index --no-deps -U ' +
|
check_output('pip install --no-index --no-deps -U ' +
|
||||||
# Disable cache since we're not using it and it otherwise
|
# Disable cache since we're not using it and it otherwise
|
||||||
# sometimes throws permission warnings:
|
# sometimes throws permission warnings:
|
||||||
@@ -1428,6 +1450,12 @@ UNLIKELY_EOF
|
|||||||
|
|
||||||
say "Installation succeeded."
|
say "Installation succeeded."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$INSTALL_ONLY" = 1 ]; then
|
||||||
|
say "Certbot is installed."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
"$VENV_BIN/letsencrypt" "$@"
|
"$VENV_BIN/letsencrypt" "$@"
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
iQEzBAABCAAdFiEEos+1H6J1pyhiNOeyTRfJlc2XdfIFAlpqMlYACgkQTRfJlc2X
|
iQEzBAABCAAdFiEEos+1H6J1pyhiNOeyTRfJlc2XdfIFAlqgLj0ACgkQTRfJlc2X
|
||||||
dfKHfQgAnZQJ34jFoVqEodT0EjvkFKZif4V/zXTsVwTHn107BcLCpH/9gjANrSo3
|
dfIAtAf/YwRvn17fdJOSXr08LP/qDPefz8AFefUJdKoOa+ikWIOWZTh5hskGtXO0
|
||||||
JpvseH2q0odhOAZA4rZKH4Geh+5fsUl3Ew9YB28RXeyqEfCATUqPq6q+jAi55SLc
|
e894FNcZqbg6NQu/KUBQAz/nBDRz8IOaWN30MFq5B4V2A3In5rn59PNaCDSKSBbC
|
||||||
a064Ux5N7eOIh9gxvpDKBeSFD0eNB8IDtPQhUspr+WnoycawrJHNGawL8WIfrWY3
|
auyU24gYkBxbDPjMpuode7yCsvHxTsB5sLNmHByMyMTBmQaiT5odAjr7PztTP52S
|
||||||
0ZPF981iPCWCdN3woDP9wHA2QtBClAk2pQ1aMgdkK9r/QLO+DY92xmT/Uu4ik2jR
|
s/29/WOCJAYzBBFFJ9d0QD0drVSIcDM5JCuUK2vXgPuPVD4f3GankgP1nnAJ5ADV
|
||||||
zv+QplsQLftjD+bRar5R9jiCWV5phPqrOF3ypMiU0K5bsnrZfGBzBcoEyfKuB+UR
|
acJp3cQ3OsofeE/HTw0qq7TiL0dGYf8yhRFovFve7tX+oujMIRALQJW6K9Qi7KTv
|
||||||
F/j/631OC6yLRasr+xcL1gc+SCryfA==
|
777V6xHuphrA+1qIrg2H8czOBDclFQ==
|
||||||
=tkZT
|
=Ngvl
|
||||||
-----END PGP SIGNATURE-----
|
-----END PGP SIGNATURE-----
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ if [ -z "$VENV_PATH" ]; then
|
|||||||
fi
|
fi
|
||||||
VENV_BIN="$VENV_PATH/bin"
|
VENV_BIN="$VENV_PATH/bin"
|
||||||
BOOTSTRAP_VERSION_PATH="$VENV_PATH/certbot-auto-bootstrap-version.txt"
|
BOOTSTRAP_VERSION_PATH="$VENV_PATH/certbot-auto-bootstrap-version.txt"
|
||||||
LE_AUTO_VERSION="0.22.0.dev0"
|
LE_AUTO_VERSION="0.22.0"
|
||||||
BASENAME=$(basename $0)
|
BASENAME=$(basename $0)
|
||||||
USAGE="Usage: $BASENAME [OPTIONS]
|
USAGE="Usage: $BASENAME [OPTIONS]
|
||||||
A self-updating wrapper script for the Certbot ACME client. When run, updates
|
A self-updating wrapper script for the Certbot ACME client. When run, updates
|
||||||
@@ -1199,18 +1199,18 @@ letsencrypt==0.7.0 \
|
|||||||
--hash=sha256:105a5fb107e45bcd0722eb89696986dcf5f08a86a321d6aef25a0c7c63375ade \
|
--hash=sha256:105a5fb107e45bcd0722eb89696986dcf5f08a86a321d6aef25a0c7c63375ade \
|
||||||
--hash=sha256:c36e532c486a7e92155ee09da54b436a3c420813ec1c590b98f635d924720de9
|
--hash=sha256:c36e532c486a7e92155ee09da54b436a3c420813ec1c590b98f635d924720de9
|
||||||
|
|
||||||
certbot==0.21.1 \
|
certbot==0.22.0 \
|
||||||
--hash=sha256:08f026078807fbcfd7bfab44c4d827ee287738fefcc86fbe1493ce752d2fdccb \
|
--hash=sha256:ebfeaf9737dc440a9f263099487523ab4c8d8da9def31a71327439d9186e00fa \
|
||||||
--hash=sha256:e6c8e9b0b5e38834330831d5a91e1c08accdb9b4923855d14d524e7327e6c4ea
|
--hash=sha256:ee307dd8f194bd710a3326aa4bacf95d358877498c0b9aa187eff0dc211dcbb3
|
||||||
acme==0.21.1 \
|
acme==0.22.0 \
|
||||||
--hash=sha256:4b2b5ef80c755dfa30eb5c67ab4b4e66e7f205ad922b43170502c5f8d8ef1242 \
|
--hash=sha256:37e6d8e4eb7dd18edac96de209f451300e04074f14be7fce713db6931a0e4a20 \
|
||||||
--hash=sha256:296e8abf4f5a69af1a892416faceea90e15f39e2920bf87beeaad1d6ce70a60b
|
--hash=sha256:4a2cd52db32e914b68d8446c8e788f507c20edebbd1c36d4f3eda7b47c555fe8
|
||||||
certbot-apache==0.21.1 \
|
certbot-apache==0.22.0 \
|
||||||
--hash=sha256:faa4af1033564a0e676d16940775593fb849527b494a15f6a816ad0ed4fa273c \
|
--hash=sha256:e91f6ec8203b636fa44f01017646fca68406224ee327fd56017103b78bc65539 \
|
||||||
--hash=sha256:0bce4419d4fdabbdda2223cff8db6794c5717632fb9511b00498ec00982a3fa5
|
--hash=sha256:8fbab1a358ec131996d1c00f7d0ed18ee3624f8469cab3962dfd8ba40ca3e7cd
|
||||||
certbot-nginx==0.21.1 \
|
certbot-nginx==0.22.0 \
|
||||||
--hash=sha256:3fad3b4722544558ce03132f853e18da5e516013086aaa40f1036aa6667c70a9 \
|
--hash=sha256:d67210cf73cf44e8aeff04f6f228d8bde74444703ce3ccd929a450685b58c30b \
|
||||||
--hash=sha256:55a32afe0950ff49d3118f93035463a46c85c2f399d261123f5fe973afdd4f64
|
--hash=sha256:b2b26bf9112062b02518407704cad09f7136322163d529a2dde3b6e1578ecb8c
|
||||||
|
|
||||||
UNLIKELY_EOF
|
UNLIKELY_EOF
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
|
|||||||
Binary file not shown.
@@ -1,12 +1,12 @@
|
|||||||
certbot==0.21.1 \
|
certbot==0.22.0 \
|
||||||
--hash=sha256:08f026078807fbcfd7bfab44c4d827ee287738fefcc86fbe1493ce752d2fdccb \
|
--hash=sha256:ebfeaf9737dc440a9f263099487523ab4c8d8da9def31a71327439d9186e00fa \
|
||||||
--hash=sha256:e6c8e9b0b5e38834330831d5a91e1c08accdb9b4923855d14d524e7327e6c4ea
|
--hash=sha256:ee307dd8f194bd710a3326aa4bacf95d358877498c0b9aa187eff0dc211dcbb3
|
||||||
acme==0.21.1 \
|
acme==0.22.0 \
|
||||||
--hash=sha256:4b2b5ef80c755dfa30eb5c67ab4b4e66e7f205ad922b43170502c5f8d8ef1242 \
|
--hash=sha256:37e6d8e4eb7dd18edac96de209f451300e04074f14be7fce713db6931a0e4a20 \
|
||||||
--hash=sha256:296e8abf4f5a69af1a892416faceea90e15f39e2920bf87beeaad1d6ce70a60b
|
--hash=sha256:4a2cd52db32e914b68d8446c8e788f507c20edebbd1c36d4f3eda7b47c555fe8
|
||||||
certbot-apache==0.21.1 \
|
certbot-apache==0.22.0 \
|
||||||
--hash=sha256:faa4af1033564a0e676d16940775593fb849527b494a15f6a816ad0ed4fa273c \
|
--hash=sha256:e91f6ec8203b636fa44f01017646fca68406224ee327fd56017103b78bc65539 \
|
||||||
--hash=sha256:0bce4419d4fdabbdda2223cff8db6794c5717632fb9511b00498ec00982a3fa5
|
--hash=sha256:8fbab1a358ec131996d1c00f7d0ed18ee3624f8469cab3962dfd8ba40ca3e7cd
|
||||||
certbot-nginx==0.21.1 \
|
certbot-nginx==0.22.0 \
|
||||||
--hash=sha256:3fad3b4722544558ce03132f853e18da5e516013086aaa40f1036aa6667c70a9 \
|
--hash=sha256:d67210cf73cf44e8aeff04f6f228d8bde74444703ce3ccd929a450685b58c30b \
|
||||||
--hash=sha256:55a32afe0950ff49d3118f93035463a46c85c2f399d261123f5fe973afdd4f64
|
--hash=sha256:b2b26bf9112062b02518407704cad09f7136322163d529a2dde3b6e1578ecb8c
|
||||||
|
|||||||
Reference in New Issue
Block a user