1
0
mirror of https://github.com/certbot/certbot.git synced 2026-01-27 19:42:53 +03:00
Commit Graph

10392 Commits

Author SHA1 Message Date
Adrien Ferrand
23e1e07139 Emit deprecation warnings for Zope interfaces (#8970)
* Monkeypatch certbot.interfaces module to warn about deprecations

* Ignore our own warning

* Fix type

* Add a changelog entry
2021-08-15 07:06:29 +10:00
alexzorin
241a7c32a2 docs: add basic intro to certbot in user guide (#8979)
* docs: add basic intro to certbot in user guide

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2021-08-13 17:39:12 -07:00
alexzorin
10dc41e83d docs: add "Deleting Certificates" to user guide (#8910)
I want this for #8949.

I think this is quite verbose, but purposefully so as an intervention to try prevent users from hitting this problem. It's more of a "How-To Guide" than a "Reference Guide" (in the lingo of https://documentation.divio.com). 

* docs: add "Deleting Certificates" to user guide

* try a less convoluted explanation

about what the installer did in the first place

* add a warning early on: read the full thing

* erica's copy changes

* rewrite as a how-to guide

* rewrite self-signed step 2 for mental model++

* rewrite intro to "safely deleting certificates"
2021-08-13 14:04:47 -07:00
Adrien Ferrand
6943cea6b7 Reimplement zope interfaces into abc in compatibility tests (#8971)
* Reimplement zope interfaces into abc in compatibility tests

* Refactor to fix lint and mypy warnings

* Fix inheritance
2021-08-13 11:00:33 +10:00
Brad Warren
b4c49cf781 Improve snapcraft remote build (#8985)
[Snapcraft 5.0](https://forum.snapcraft.io/t/release-notes-snapcraft-5-0/25751) implemented creating build IDs based on the project's contents instead of the directory path in https://github.com/snapcore/snapcraft/pull/3554. This is a feature we initially wanted, but it broke our workaround added in https://github.com/certbot/certbot/pull/8719. Our workaround is broken because now that the build ID is based on the project's contents, copying the project to a temporary directory has no effect.

This PR removes the workaround from https://github.com/certbot/certbot/pull/8719 and instead constructs a random build ID that it provides to snapcraft. This provides us with even more randomness to avoid build ID conflicts while avoiding having to copy the project to a temporary directory before every build.

* improve-remote-build

* use lowercase letters
2021-08-12 15:34:40 -07:00
Yaroslav Halchenko
5e87aee968 BF: apache cfg parsing - relax assumption that value cannot contain = (#8930)
* BF: apache cfg parsing - relax assumption that value cannot contain =

* Remove failing test_update_runtime_vars_bad_output

* Add test Define statements: with = in value, and an empty value

* update CHANGELOG

Co-authored-by: Alex Zorin <alex@zorin.id.au>
2021-08-13 07:57:24 +10:00
Brad Warren
693a2a7904 remove outdated example code (#8984)
There are a couple problems with these files.

1. `python -m acme.standalone` from the README hasn't worked since https://github.com/certbot/certbot/pull/7483.
2. The symlinks for the PEM files have been broken since https://github.com/certbot/certbot/pull/7600.

Because of this and the fact [these example files are causing snap build failures](https://dev.azure.com/certbot/certbot/_build/results?buildId=4395&view=logs&j=f44d40a4-7318-5ffe-762c-ae4557889284&t=07786725-57f8-5198-4d13-ea77f640bd5c&l=78), let's delete it.
2021-08-12 14:04:22 -07:00
Brad Warren
3058b6e748 Fix circular import (#8967)
* add internal display util

* Move display constants internal.

* move other utilities internal

* fix OK and CANCEL documentation
2021-08-05 08:49:20 +02:00
Brad Warren
7b78770010 fix egg-info cleanup (#8966) 2021-08-05 07:04:05 +10:00
Brad Warren
cd2dff2db1 Merge pull request #8969 from certbot/candidate-1.18.0
Release 1.18.0
2021-08-03 16:05:39 -07:00
Erica Portnoy
8194e8faef Bump version to 1.19.0 2021-08-03 13:23:45 -07:00
Erica Portnoy
06698ad95f Add contents to certbot/CHANGELOG.md for next version 2021-08-03 13:23:45 -07:00
Erica Portnoy
0d76d1f219 Release 1.18.0 v1.18.0 2021-08-03 13:23:13 -07:00
Erica Portnoy
5c3c682b6e Update changelog for 1.18.0 release 2021-08-03 13:12:59 -07:00
Brad Warren
1129d850d3 add chardet dep (#8965) 2021-08-03 10:35:00 +10:00
alexzorin
bdc48e6a32 snap: workaround for snapctl crash in plugin hook (#8955)
* snap: workaround for snapctl crash in plugin hook

* test functionality, not existence
2021-08-02 16:15:46 -07:00
alexzorin
523f8f5e65 stop using deprecated distro.linux_distribution (#8961)
`distro.linux_distribution` was deprecated (https://github.com/python-distro/distro/pull/296) in the release of `distro` at the end of last week. The deprecation is causing the `nopin` nightly tests to fail.

This change migrates Certbot off that function.

As far as I can tell, the Arch Linux edge case described in the code comments no longer happens, but better to be safe than sorry I think.

* stop using deprecated distro.linux_distribution

* update comment

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2021-08-02 15:39:07 -07:00
Brad Warren
1dabddeb85 make display classes implement IDisplay (#8963) 2021-08-02 11:59:07 -07:00
Brad Warren
f9ef894141 update snapcraft.cfg comment (#8959) 2021-08-01 12:15:01 +10:00
Adrien Ferrand
979e21dcbf Reimplement Certbot zope.interfaces into abstract base classes (#8950)
* Implement certbot services

* Various fixes

* Local oldest requirements

* Clean imports

* Add unit tests for certbot.services

* Clean code

* Protect against nullity of global services

* Fix CLI

* Fix tests

* Consistent test behavior

* Define new ABC classes

* Reimplement services with new ABC classes

* Adapt plugins discovery and selection

* Remove zope interfaces from plugins

* Re-enable delegation for simplicity

* Fix interfaces declaration

* Remove interface implementer

* Interfaces ordering

* Extract zope logic from discovery

* Cleanup imports

* Fixing tests

* Fix main_test

* Finish certbot unit tests

* Fix lint

* Various fixes thanks to mypy

* Fix lint

* Order imports

* Various fixes

* Clean code

* Remove reporter service, migrate display service in certbot.display.util.

* Fix test

* Fix apache compatibility test

* Fix oldest test

* Setup certbot.display.service module

* Reintegrate in util

* Fix imports

* Fix tests and documentation

* Refactor

* Cleanup

* Cleanup

* Clean imports

* Add unit tests

* Borrow sphinx build fix from #8863

* Align zope interfaces on ABC

* Various fixes

* Fix type

* Fix type

* Some cleanup

* Fix lint

* Update certbot/certbot/_internal/configuration.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update certbot/certbot/_internal/configuration.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Fix imports

* Fix Config contract (accounts_dir property)

* Remove unnecessary interface

* Set NamespaceConfig public, remove Config interface

* Remove Display ABC and implementation of IDisplay

* Clean lint

* Cleanup old decorators

* Contract on plugin constructor only

* Update certbot/certbot/tests/util.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update certbot/certbot/configuration.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update certbot/certbot/interfaces.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Some corrections

* Add changelog

* Fix --authenticators and --installers flags on plugins subcommand

* Fix multiheritance on the interface Plugin

* Update certbot/certbot/_internal/plugins/manual.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update certbot/certbot/_internal/plugins/disco.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Add warnings in logger also

* Add deprecation warnings also when plugins are verified.

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2021-07-29 13:45:29 -07:00
Adrien Ferrand
8133d3e70a Fix python-augeas failure on Windows (v2) (#8951)
This PR is a new approach for fixing #8732 based on the discussions occurred in the first PR #8877.

This PR upgrades python-augeas to the latest version, and avoids tests failure of Windows because of this upgrade. To do so it leverages the [tox multi-platform feature](https://tox.readthedocs.io/en/latest/example/platform.html) and modifications to `tools/venv.py` in order to not install and not test `certbot-apache` on Windows.

* Unpin python-augeas and upgrade current pinnings

* Do not install certbot-apache in Windows dev environments

* Introduce tox specific win packages + remove certbot compatibility on windows

* Add libaugeas to sphinx build

* Redefine lint and mypy targets

* Keep the lint and mypy environments
2021-07-29 11:25:25 -07:00
Brad Warren
08839758bd Finish pinning system rewrite (#8934)
* add oldest pyproject.toml file that works

* make single oldest_constraints.txt file

* remove unused merge_requirements.py

* remove unused import

* make conditional right

* simplify pip_install.py

* fix typo

* bump min dns-lexicon dependency

* fix zope import warning

* pin back wheel

* refactor pinning script

* Add oldest script.

* add pip comment

* add pipstrap extra

* simplify pinning scripts

* remove pipstrap extra

* update contributing

* Add design doc

* Update tools/pinning/DESIGN.md

Co-authored-by: ohemorange <erica@eff.org>

* Update tools/pinning/DESIGN.md

Co-authored-by: ohemorange <erica@eff.org>

* Update tools/pinning/DESIGN.md

Co-authored-by: ohemorange <erica@eff.org>

* Update tools/pinning/DESIGN.md

Co-authored-by: ohemorange <erica@eff.org>

* rename normal to current

* no dummies

* script improvements

* mention need to update setup.py

* try and clarify poetry behavior

* tweak section title

Co-authored-by: ohemorange <erica@eff.org>
2021-07-22 12:00:30 -07:00
Adrien Ferrand
10eecf9c97 Deprecate zope.component in favor of an direct calls to functions from certbot.display.util module (#8835)
* Implement certbot services

* Various fixes

* Local oldest requirements

* Clean imports

* Add unit tests for certbot.services

* Clean code

* Protect against nullity of global services

* Fix CLI

* Fix tests

* Consistent test behavior

* Various fixes

* Clean code

* Remove reporter service, migrate display service in certbot.display.util.

* Fix test

* Fix apache compatibility test

* Fix oldest test

* Setup certbot.display.service module

* Reintegrate in util

* Fix imports

* Fix tests and documentation

* Refactor

* Cleanup

* Cleanup

* Clean imports

* Add unit tests

* Borrow sphinx build fix from #8863

* Fix type

* Add comment

* Do not reuse existing display service, which never exist at that time

* Make get_display() private

* Fix lint

* Make display internal

* Fix circular dependencies

* Fixing circular dependencies

* Rename patch methods and update docstring

* Update deprecation messages

* Update certbot/certbot/_internal/display/obj.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update certbot/certbot/tests/util.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update certbot/certbot/tests/util.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update certbot/certbot/tests/util.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update certbot/certbot/tests/util.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Add links

* Avoid relying on internal certbot packages from certbot-apache

* Keep same behavior for patch_get_utility*

* Better diff

* Add changelog

* Update certbot/certbot/tests/util.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2021-07-19 17:09:06 -07:00
alexzorin
bebd399488 acme: deprecate ACMEv1 client classes (#8931)
* acme: deprecate ACMEv1 client classes

Adds pending deprecations to:
- acme.client.Client
- acme.client.BackwardsCompatibleClientV2

Adds a warning to Certbot when a v1 server is detected.

* move thsi change from 1.17 to 1.18

* revert some whitespace changes
2021-07-16 08:50:16 +10:00
alexzorin
a105b587ac apache: fix crash when authenticating empty vhosts (#8941)
Fixes #8940.
2021-07-15 11:12:14 -07:00
alexzorin
8e29063ba7 pylint: upgrade pinned verson and fix new lints (#8936)
While bumping pinned packages in #8928, we came across a new version of pylint (2.9.3). Upgrading to this version requires some changes to Certbot's code, which is what this change is about.

* pylint: upgrade pinned verson and fix new lints

* maxsplit should be 1, not -1, for rsplit
2021-07-15 11:03:39 -07:00
Brad Warren
117791b582 Remove unneeded certbot-auto files (#8938) 2021-07-14 14:34:54 -07:00
Brad Warren
2ab7857fa5 Do not guess HTTP-01 response encoding (#8942)
* fix http-01 encoding

* improve comment
2021-07-14 14:11:50 -07:00
ohemorange
7ede5c3487 Merge pull request #8933 from certbot/candidate-1.17.0
Update files from 1.17.0 release
2021-07-06 12:38:04 -07:00
Brad Warren
915459258b Bump version to 1.18.0 2021-07-06 08:42:52 -07:00
Brad Warren
d94cf0e1d6 Add contents to certbot/CHANGELOG.md for next version 2021-07-06 08:42:51 -07:00
Brad Warren
952a296e20 Release 1.17.0 v1.17.0 2021-07-06 08:42:49 -07:00
Brad Warren
d9a1850eaa Update changelog for 1.17.0 release 2021-07-06 08:41:16 -07:00
alexzorin
667750f3ff docs: explain the situation with --manual renewal (#8911)
* docs: explain the situation with --manual renewal

* note that the non-hook command can't be cronned

* add xref to #renewing-certificates

* update manual description in the plugins table

* redirect manual users towards other plugins

* refer to authentication hook scripts in table
2021-06-28 16:40:24 -07:00
Rene Luria
8b610239bf Adds Infonaniak 3rd party plugin (#8923) 2021-06-25 14:46:37 -04:00
ohemorange
62426caa5a Merge pull request #8919 from alexzorin/standalone-error-ux
Improve standalone errors
2021-06-21 16:54:36 -07:00
Alex Zorin
f137d8424e acme.standalone: expose original socket.error 2021-06-22 09:24:53 +10:00
Alex Zorin
e5c41e76c5 standalone: add an auth_hint 2021-06-22 09:24:44 +10:00
alexzorin
1e114b4ef8 apache: configure nameless vhosts during auth (#8898)
In the apache2 package on Debian-based distros, the default
000-default.conf virtual host does not include a ServerName.

Depending on the FQDN hostname of the machine and DNS setup, Apache
assigns a name to this unnamed vhost at runtime. As a result, the
Apache config end up with vhosts that have duplicative names.

Previously, Certbot did not identify that the nameless vhost could be
a match for the requested identifier, which would, depending on
configuration load order, cause the authenticator to fail.

This change causes Certbot to include all unnamed vhosts on top of
matched vhosts, during authentication. If no vhosts matched, the
existing behavior remains the same.

* apache: configure nameless vhosts during auth

* vhost is only unnamed if ServerName is not set

* also fix test to only match ServerName

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2021-06-21 07:18:29 -04:00
alexzorin
bc7c953bcc cli: vary renewal advice for hookless manual certs (#8914)
* cli: vary renewal advice for hookless manual certs

1. Don't print that the certificate will be automatically renewed,
because it won't be.
2. Add a "NEXT STEP" telling the user that they will need to manually
re-issue the certificate in order to renew it.

* kill superfluous comma

Co-authored-by: ohemorange <ebportnoy@gmail.com>

* clarify wording of the next step

* fix the test

Co-authored-by: ohemorange <ebportnoy@gmail.com>
2021-06-17 16:36:54 -07:00
alexzorin
60a91eb688 certonly: hide "NEXT STEPS" for dry-runs (#8901)
* certonly: hide "NEXT STEPS" for dry-runs

* add a test
2021-06-14 14:25:43 -07:00
chaptergy
1b025e84e8 Adds njalla, DuckDNS and Porkbun 3rd party plugins (#8907) 2021-06-14 13:23:35 -07:00
kartikynwa
d3555623ba certbot-apache: Add Void Linux overrides (#8891)
* certbot-apache: Add Void Linux overrides

* certbot-apache: Correct distro name to Void Linux
2021-06-12 17:02:16 +10:00
Brad Warren
18ea72faf1 Split out testing extras (#8893)
* split out test extras

* update extras and regenerate pinnings

* pin back mypy
2021-06-11 13:17:50 -07:00
ohemorange
c8255dded5 Add --verbose-level flag and fix logging level calculations (#8900)
Also, update `dev-cli.ini` example to use new flag.

Although https://github.com/bw2/ConfigArgParse/pull/216 allowed setting a `count` action value in a config file, our default detection system won't let us use that functionality. While we should eventually fix that, for now, let developers have a cli.ini with a higher logging level by adding this flag.

Note that this flag is intended to work the same way adding `-vvv`s does; that is, as a modifier to the pre-set level, rather than setting the absolute level. The number it is set to is equivalent to the number of `v`s that would otherwise have been passed, with "2" as the current maximum effective number of levels (warning --> info --> debug).

* Add --verbose-level flag for devs to set in cli.ini

* Update dev-cli.ini to use new flag
2021-06-10 16:45:07 -07:00
ohemorange
b48e336554 Allow nginx parser to handle empty file (#8895)
* Allow parsing empty files

* add unit test

* lint

* update parser_test

* Update configurator_test

* update changelog
2021-06-11 09:21:52 +10:00
alexzorin
0c637860cd cli: improve error messages for enhance errors (#8884)
* cli: improve error messages for enhance errors

* remove status message after enhance config revert
2021-06-10 15:58:11 -07:00
Brad Warren
0b08a80dce Pin pip & co like our other dependencies (#8868)
* use poetry 1.2.0a1

* pin pip normally

* use normal constraints file with pipstrap

* remove unused STRIP_HASHES var

* Check for old poetry versions

* keep pip, setuptools, and wheel pinned in oldest

* remove strip hashes

* pin back pip

* fix new lint error
2021-06-09 17:01:54 -07:00
alexzorin
d7b26c1bb2 cli: dont use argv[0] in user-facing messages (#8857) 2021-06-09 14:31:15 -07:00
Michel Le Bihan
78261dbae2 Fix typo of fulfill in dns_rfc2136 plugin (#8886) 2021-06-06 09:55:24 +10:00