Commit Graph
10197 Commits
Author SHA1 Message Date
Adrien FerrandandGitHub 447b6ffaef Completely deprecate certbot-auto (#8489)
Fixes #8296

* Completely deprecate certbot-auto

* Add changelog
2020-12-07 15:18:00 -08:00
alexzorinandGitHub 38017473c5 add coverage testing to dns-rfc2136 integration (#8469)
* add coverage testing to dns-rfc2136 integration

* add coverage rule for certbot/* as well
2020-12-06 09:23:33 +01:00
alexzorinandGitHub dc3ac13750 snap: disable the "user site-packages directory" (#8509)
Although Certbot is a classic snap, it shouldn't load Python code from
the host system. This change prevents packages being loaded from the
"user site-packages directory" (PEP-370). i.e. Certbot will no longer
load DNS plugins installed via `pip install --user certbot-dns-*`.
2020-12-06 09:10:03 +01:00
Mads JensenandGitHub 5871de0c07 Removed some unused imports. (#8424)
These were not annotated as something that should be ignored, and the test-suite
passes with these changes.
2020-12-04 14:29:58 +01:00
alexzorinandGitHub 356e8d84d6 dns-google: improve credentials error message (#8482)
This adds a 'Error parsing credentials file ...' wrapper to any errors
raised inside certbot-dns-google's usage of oauth2client, to make it
obvious to the user where the problem lies.
2020-12-04 14:09:10 +01:00
Adrien FerrandandGitHub d476aa4389 Update both main VA and remote VA to use the provided DNS server (#8467) 2020-12-04 12:00:32 +11:00
22cf94f930 cli: clean up certbot renew summary (#8503)
* cli: clean up `certbot renew` summary

- Unduplicate output which was being sent to both stdout and stderr
- Don't use IDisplay.notification to buffer output
- Remove big "DRY RUN" guards above and below, instead change language
  to "renewal" or "simulated renewal"
- Reword "Attempting to renew cert ... produced an unexpected error"
  to be more concise.

* add newline to docstring

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

Co-authored-by: ohemorange <ebportnoy@gmail.com>
2020-12-03 16:38:59 -08:00
ohemorangeandGitHub d3166d7072 Merge pull request #8505 from certbot/candidate-1.10.1
Candidate 1.10.1
2020-12-03 12:29:26 -08:00
Brad Warren 67fecbe1e0 Merge branch 'master' into candidate-1.10.1 2020-12-03 11:01:46 -08:00
Brad Warren 1dfac955c7 Bump version to 1.11.0 2020-12-03 10:33:32 -08:00
Brad Warren 38f3d3d185 Add contents to certbot/CHANGELOG.md for next version 2020-12-03 10:33:32 -08:00
Brad Warren 64543d4970 Release 1.10.1 v1.10.1 2020-12-03 10:33:30 -08:00
Brad Warren 4c896fd87c Update changelog for 1.10.1 release 2020-12-03 10:20:11 -08:00
Brad WarrenandGitHub a71e22678f Fix add deprecated argument (#8500) (#8501)
Fixes https://github.com/certbot/certbot/issues/8495.

To further explain the problem here, `modify_kwargs_for_default_detection` as called in `add` is simplistic and doesn't always work. See https://github.com/certbot/certbot/issues/6164 for one other example.

In this case, were bitten by the code https://github.com/certbot/certbot/blob/d1e7404358c05734aaf436ef3c9d709029d62b09/certbot/certbot/_internal/cli/helpful.py#L393-L395

The action used for deprecated arguments isn't in `ZERO_ARG_ACTIONS` so it assumes that all deprecated flags take one parameter.

Rather than trying to fix this function (which I think can only realistically be fixed by https://github.com/certbot/certbot/issues/4493), I took the approach that was previously used in `HelpfulArgumentParser.add_deprecated_argument` of bypassing this extra logic entirely. I adapted that function to now call `HelpfulArgumentParser.add` as well for consistency and to make testing easier.

* Rename deprecated arg action class

* Skip extra parsing for deprecated arguments

* Add back test of --manual-public-ip-logging-ok

* Add changelog entry

(cherry picked from commit 5f73274390)
2020-12-03 09:06:05 +01:00
Alex Zorin 9160669b31 try fix oldest deps
because certbot 1.10.0 depends on acme>=1.8.0, we need to use
acme==1.8.0 in the -oldest tests
2020-12-03 16:58:18 +11:00
Alex Zorin eb6db049f0 use better asserts 2020-12-03 16:35:46 +11:00
Alex Zorin 2e5f457a0f fix dependency version on certbot 2020-12-03 16:32:06 +11:00
Alex Zorin 71e8744036 fix certbot_compatibility_test
since the http plugins now require IDisplay, we need to inject it
2020-12-03 16:29:15 +11:00
Alex Zorin 0bb5336a5f nginx,apache: CLI logging changes
- Add "Successfully deployed ..." message using display_util
- Remove IReporter usage and replace with display_util
- Standardize "... could not find a VirtualHost ..." error

This changes also bumps the version of certbot required by certbot-nginx
and certbot-apache to take use of the new display_util function.
2020-12-03 16:10:02 +11:00
45e48b565d Fix changelog typo (#8497)
Co-authored-by: Adrien Ferrand <ferrand.ad@gmail.com>
2020-12-02 15:12:27 -08:00
Brad WarrenandGitHub 5f73274390 Fix add deprecated argument (#8500)
Fixes https://github.com/certbot/certbot/issues/8495.

To further explain the problem here, `modify_kwargs_for_default_detection` as called in `add` is simplistic and doesn't always work. See https://github.com/certbot/certbot/issues/6164 for one other example.

In this case, were bitten by the code https://github.com/certbot/certbot/blob/d1e7404358c05734aaf436ef3c9d709029d62b09/certbot/certbot/_internal/cli/helpful.py#L393-L395

The action used for deprecated arguments isn't in `ZERO_ARG_ACTIONS` so it assumes that all deprecated flags take one parameter.

Rather than trying to fix this function (which I think can only realistically be fixed by https://github.com/certbot/certbot/issues/4493), I took the approach that was previously used in `HelpfulArgumentParser.add_deprecated_argument` of bypassing this extra logic entirely. I adapted that function to now call `HelpfulArgumentParser.add` as well for consistency and to make testing easier.

* Rename deprecated arg action class

* Skip extra parsing for deprecated arguments

* Add back test of --manual-public-ip-logging-ok

* Add changelog entry
2020-12-02 15:08:07 -08:00
Brad WarrenandGitHub 87386769f7 Merge pull request #8499 from certbot/remove-centos6-tests-1.10.x
Remove centos6 tests 1.10.x
2020-12-02 13:08:03 -08:00
Brad Warren 7497c51f34 Undo certbot-auto changes and remove centos6 tests
* Don't deprecate certbot-auto quite yet

* Remove centos6 test farm tests

* undo changes to test farm test scripts

(cherry picked from commit e5113d5815)
2020-12-02 12:37:43 -08:00
Adrien FerrandandBrad Warren 1a3c96a955 Deprecate certbot-auto and remove tests
* Completely deprecate certbot-auto

* DeaDeactivate centos6/oraclelinux6 tests

* Remove tests assets

* Remove another test

* Revert "Remove tests assets"

This reverts commit e603afe6c4.

(cherry picked from commit ff3a07dca3)
2020-12-02 12:37:38 -08:00
Brad WarrenandGitHub d1e7404358 Merge pull request #8498 from certbot/remove-centos6-tests
Remove CentOS 6 tests
2020-12-02 12:35:55 -08:00
Brad Warren e5113d5815 Undo certbot-auto changes and remove centos6 tests
* Don't deprecate certbot-auto quite yet

* Remove centos6 test farm tests

* undo changes to test farm test scripts
2020-12-02 10:22:44 -08:00
Adrien FerrandandBrad Warren ff3a07dca3 Deprecate certbot-auto and remove tests
* Completely deprecate certbot-auto

* DeaDeactivate centos6/oraclelinux6 tests

* Remove tests assets

* Remove another test

* Revert "Remove tests assets"

This reverts commit e603afe6c4.
2020-12-02 09:48:57 -08:00
Brad WarrenandGitHub 31b5f1310e Fix changelog typo (#8488)
* fix changelog typo

* remove empty entry
2020-12-02 08:57:04 +11:00
ohemorangeandGitHub faa8d230c7 Merge pull request #8487 from certbot/candidate-1.10.0
Update files from 1.10.0 release
2020-12-01 12:25:10 -08:00
Brad Warren baab69e653 Bump version to 1.11.0 2020-12-01 10:35:58 -08:00
Brad Warren 7b687611a4 Add contents to certbot/CHANGELOG.md for next version 2020-12-01 10:35:57 -08:00
Brad Warren adacc4ab6d Release 1.10.0 v1.10.0 2020-12-01 10:35:55 -08:00
Brad Warren 43ee2993f1 Update changelog for 1.10.0 release 2020-12-01 10:22:39 -08:00
alexzorinandGitHub f5a88ade54 nginx: fix Unicode crash on Python 2 (#8480)
* nginx: fix py2 unicode sandwich

The nginx parser would crash when saving configuraitons containing
Unicode, because py2's `str` type does not support Unicode.

This change fixes that crash by ensuring that a string type supporting
Unicode is used in both Python 2 and Python 3.

* nginx: add unicode to the integration test config

* update CHANGELOG
2020-11-27 18:15:27 +01:00
Mads JensenandGitHub aea416f654 Fix link typo in README (#8476) 2020-11-25 10:11:51 +01:00
Brad WarrenandGitHub 9a4e95e25a Add Python 3.9 support and tests (#8460)
Fixes https://github.com/certbot/certbot/issues/8134.

* Test on Python 3.9.

* Mention Python 3.9 support in changelog.

* s/\( *'Pro.*3\.\)8\(',\)/\18\2\n\19\2/

* undo changes to tox.ini

* Move more tests to Python 3.9

* Update PyYAML and packages which pinned it back

* Upgrade typed-ast

* Use <= to "pin" dnspython

* Fix lint by telling pylint it cannot be trusted

* Disable mypy on RFC plugin

* add comment about <= support
2020-11-19 12:48:36 -08:00
Brad WarrenandGitHub 9ca7f76505 Merge pull request #8444 from certbot/ecdsa
Integrate the ECDSA certificates feature on master
2020-11-19 11:54:24 -08:00
Brad WarrenandGitHub a8cede6ae1 Flesh out ECDSA documentation (#8464)
* Changelog tweaks.

* Add ECDSA documentation

* Fix typo
2020-11-19 09:10:56 +01:00
Mads JensenandGitHub be3d0d872f Read files as binary in crypto_util for crypto.load_certificate. (#8371) 2020-11-17 16:02:35 -08:00
Brad WarrenandGitHub 5a85825493 Merge pull request #8458 from certbot/fix-py2-integration
Fix Python 2 integration tests
2020-11-17 15:39:01 -08:00
Alex ZorinandBrad Warren e8139e80be certbot-ci: fix py2 crash in dns_server 2020-11-17 14:58:29 -08:00
Brad Warren 7ba35b4407 import print_function 2020-11-17 11:51:27 -08:00
alexzorinandGitHub 90557921e3 Add certbot-dns-rfc2136 integration testing (#8448)
* tests: add certbot-dns-rfc2136 integration tests

* dont use 'with' form of socket.socket

fixes py2 crash

* address some feedback:

- conftest: make DNS server a global resource
- conftest: add dns_xdist parameter into node config
- conftest: add --dns-server=bind flag
- conftest: if configured, point the ACME server to the DNS server
- dnsserver: make it sort-of compatible with xdist (future-proofing)
- context: parameterize dns-rfc2136 credentials file (future proofing)
- context: reduce dns-rfc2136 propagation time to speed up tests
- tox: add a integration-dns-rfc2136 target
- rfc2136: add a test/zone for subdelegation
- rfc2136: skip tests if no DNS server is configured

* try add integration-dns-rfc2136 to CI

* mock recursive dns via RPZ

* update --dns-server args and tox.ini args

* address more feedback:

- dns_server: rename rfc2136 creds file to .tpl
- dns_server: dont vary dns server port, instead we will vary zone names (#8455)
- dns_server: log error if bind9 fails to stop cleanly
- dns_server: replace assert with raise
- context: remove redundant _worker_id
- context: remove redundant cleanup override
- context: fix seek/flush in credentials context manager
- context: rename skip_if_no_server -> ...bind_server
- context: add newline EOF

* conftest: document _setup_primary_node sideeffects

* ci: rfc2136-integration from standard->nightly

* fix _stop_bind (function was renamed to stop)

* ignore errors from shutil.rmtree during cleanup

* dns_server: check for crash while polling

* remove --dry-run from rfc2136 test
2020-11-17 09:27:27 +01:00
alexzorinandGitHub 78edb2889e cli: improve Obtaining/Renewing wording (#8395)
* cli: improve Obtaining/Renewing wording

* dont use logger, and use new phrasing

* .display_util.notify: dont wrap

As this function is supposed to be an analogue for print, we do not want
it to wrap by default.
2020-11-12 16:09:29 -08:00
Adrien FerrandandGitHub 553d3279c6 Add --dns-server option in run_acme_server (#7722)
Fixes #7717

This PR adds a `--dns-server` option to the `run_acme_server` test tool, in order to provide an arbitrary DNS server to Pebble or Boulder for the integration tests.

I also take this occasion to make `run_acme_server` a real CLI tool using argparse, and set the `--server-type` (default `pebble`) option as well.

* Set --dns-server flag in run_acme_server

* Default to pebble

* Add documentation

* Configure also Boulder
2020-11-12 15:31:32 -08:00
Mads JensenandGitHub b742b60c4d Use better asserts. Added notes to style guide. (#8451) 2020-11-12 23:33:02 +01:00
Adrien FerrandandGitHub 2132cf7f04 Use Python 3.8 for Linux integration tests (#8449)
Do we have any specific reason to run the standard Linux integration tests on Python 2.7?

If not, we should move to a more recent version of Python. This PR does it for Python 3.8.
2020-11-12 12:44:05 -08:00
Brad WarrenandGitHub f15f4f9838 Add certbot renew --key-type test (#8447)
* Test certbot renew --key-type

* Fix typo
2020-11-12 00:06:50 +01:00
Adrien FerrandandGitHub 2a118f3e83 Close the session once snap connections are acquired (#8438)
This PR uses the context manager available for `requests.Session` to close properly the `session` once snap connections have been acquired.
2020-11-11 12:54:29 -08:00
8f5787008d Handle unexpected key type migration. (#8435)
Fixes #8365

This PR adds a control when `certbot certonly` or `certbot run` are called for a certificate that already exists and would eventually be replaced. As described in #8365, this control is here to ensure that the user will not modify the key type of their certificate (eg. ECDSA to RSA) without an explicit approval (set explicitly `--cert-name` and `--key-type`), since RSA is the default if not specified.

* Handle unexpected key type migration.

* Update certbot-ci/certbot_integration_tests/certbot_tests/test_main.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2020-11-11 12:36:16 -08:00