Commit Graph
100 Commits
Author SHA1 Message Date
alexzorinandGitHub 7ab82b6f64 repin dependencies (#9454) 2022-11-02 12:32:00 -07:00
alexzorinandGitHub 5270c34dd7 docs: use modern tsig-keygen util in certbot-dns-rfc2136 (#9424)
Fixes #7206.

I think it's about time we did this:

- `dnssec-keygen` on new distros doesn't support the HMAC algorithms anymore, so our instructions don't work.
- The oldest distros we support are Debian Buster (`9.11.5.P4+dfsg-5.1+deb10u7`) and CentOS 7 (`9.11.4-26.P2.el7_9.9`), which ship `tsig-keygen` and support `HMAC-SHA512`.
2022-10-17 16:55:00 -07:00
alexzorinandGitHub 314ded348e docs: add third-party dns-multi plugin (#9430) 2022-10-13 17:58:18 -07:00
alexzorinandGitHub e84271b36b Merge pull request #9425 from certbot/candidate-1.31.0
Release 1.31.0
2022-10-05 05:09:37 +11:00
alexzorinandGitHub c20d40ddba acme: further deprecations (#9395)
* acme: deprecate acme.fields.Resource and .resource

* acme: deprecate .messages.OLD_ERROR_PREFIX

* acme: deprecate .messages.Directory.register

* acme: clean up deprecations

* dont use unscoped filterwarnings

* change deprecation approach for acme.fields

* warn on non-string keys in acme.messages.Directory

* remove leaked filterwarnings in BackwardsCompatibleClientV2Test

* remove non-string lookups of acme.messages.Directory
2022-09-02 06:55:04 -07:00
f7e61edcb2 deprecate more attributes in acme (#9369)
* deprecate more attributes in acme

* Deprecate .Authorization.combinations by renaming the field and
  deprecating in getters/setters

* Silence deprecation warnings from our own imports of acme.mixins

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2022-08-30 14:41:53 -07:00
alexzorinandGitHub a81d58fa6e deprecate certbot-dns-cloudxns (#9367) 2022-08-27 07:25:37 +10:00
alexzorinandGitHub 42a4d30267 deps: remove pyjwt dependency (#9337)
* deps: remove pyjwt dependency

* pinning: strip extras from dependencies

`poetry export` outputs in requirements.txt format, which is now
apparently producing "dep[extra]==...". We are using this output
as the constraints file for pip and pip's new resolver does not
permit extras in the constraints file.

This change filters out the extras specifiers.

* repin current dependencies

* fix new pylint complaints

* silence lint about distutils.version

We have already deprecated the function and it'll be removed in
2.0.

* docs: set sphinx language to 'en'

this is emitting a warning and failing the build

* Revert "pinning: strip extras from dependencies"

This reverts commit 11268fd231.

* pin poetry back to avoid extras issue

* repin

* fix new mypy complaints in acme/
2022-07-28 17:26:12 -07:00
alexzorinandGitHub f82530d8c0 letstest: replace ubuntu 21.10 with 22.04 (#9364)
as ubuntu 21.10 is now EOL
2022-07-25 13:43:49 -07:00
ae7967c8ae docs: how to override the trusted CA certificates (#9357)
* docs: how to override the trusted CA certificates

* Update certbot/docs/using.rst

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

Co-authored-by: ohemorange <ebportnoy@gmail.com>
2022-07-19 16:17:27 -07:00
alexzorinandGitHub 49f21bcc9f deps: bump pyOpenSSL in oldest pinnings (#9329) 2022-06-22 16:38:32 -07:00
Alex Zorin 7197ae4b77 docs: clarify that we're not merging any new plugins (not just DNS) 2022-06-09 07:51:28 +10:00
alexzorinandGitHub 3b211a6e1b Merge pull request #9317 from certbot/candidate-1.28.0
Candidate 1.28.0
2022-06-08 16:48:40 +10:00
alexzorinandGitHub 295fc5e33a cli: fix help text for --no-autorenew (#9312) 2022-06-04 11:37:05 +10:00
Alex Zorin 7758a03b5b skip boulder for show_account assertions 2022-05-31 17:31:52 +10:00
Alex Zorin cf63470db9 certbot-ci: improve tests for update_account/show_account 2022-05-31 17:02:43 +10:00
alexzorinandGitHub ec49b94acb acme: use order "status" to determine action during finalization (#9297)
Rather than deducing the status of an order by the "certificate"
and "error" fields, use the "status" field directly.
2022-05-13 09:51:11 -07:00
Alex Zorin 48155b1ec7 changelog: move entry for #9184 2022-04-27 13:19:42 +10:00
alexzorinandGitHub 7a2c26fd22 docs: in contributing, ipdb→ipdb3 (#9271)
The binary is renamed in Python 3.
2022-04-07 23:27:16 +02:00
alexzorinandGitHub b7df4416b5 Merge pull request #9267 from certbot/candidate-1.26.0
Update files from 1.26.0 release
2022-04-06 08:59:07 +10:00
alexzorinandGitHub b5a187841e certbot-ci: upgrade pebble to v2.3.1 (#9260) 2022-04-02 08:17:08 +11:00
alexzorinandGitHub d45a702649 changelog: clarify --new-key entry (#9259)
@osirisinferi pointed out [in chat](https://opensource.eff.org/eff-open-source/pl/y5whp5ny378wuedi8gd7995qbo) that the way this entry was written, suggested that `--new-key` might affect whether `--reuse-key` is set or not.

I think the second sentence was the main culprit, so I've nixed it and replaced it with a reminder about our other flags.

This maybe calls out more for a documentation section but let's fix this quickly before the release.
2022-04-01 13:27:11 -07:00
alexzorinandGitHub fe0b637e4d display acme.Errors less verbosely (#9255)
* display acme.Errors less verbosely

* remove superfluous import
2022-03-31 13:48:47 -07:00
alexzorinandGitHub 284023a1b7 Add --new-key (#9252)
* add --new-key

* add tests
2022-03-31 11:40:21 -07:00
alexzorinandGitHub 05a9ded297 pinning: update awscli pin (#9242) 2022-03-23 15:13:05 -07:00
alexzorinandGitHub 690f62bae2 dns-ovh: increase default propagation timeout to 120s (#9244) 2022-03-23 15:07:29 -07:00
alexzorinandGitHub 5404701111 windows: upgrade Python to 3.9.11 (#9241) 2022-03-18 10:03:49 +11:00
alexzorinandGitHub 5ef18d905a Merge pull request #9238 from certbot/candidate-1.25.0
Release 1.25.0
2022-03-17 08:55:14 +11:00
f54d9a3257 certbot-ci: fix boulder-v2 failures related to unexported challtestsrv port (#9235)
* certbot-ci: fix challtestsrv address for boulder-v2

The port is no longer exposed on the Docker host.

* vary the challtestsrv URL by acme server

* fix mypy

* fix comment

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

Co-authored-by: ohemorange <ebportnoy@gmail.com>
2022-03-16 08:50:26 +11:00
alexzorinandGitHub ee2f5f5a0a pinning: work around poetry crash caused by bad 3rd party constraint (#9229) 2022-03-12 09:04:09 +11:00
5d493ca53c storage: always save key_type to renewal .conf (#9217)
* storage: always save key_type to renewal .conf

* fix typo in comment

Co-authored-by: DasSkelett <dasskelett@gmail.com>
2022-03-02 13:55:20 -08:00
alexzorinandGitHub 6e8f58e3f6 improve handling and ux of unexpected key type migration (#9200)
* improve handling and ux of unexpected key type migration

* update unit tests

* update integration tests

* if --cert-name and --key-type are set, dont prompt
2022-03-02 08:55:17 -08:00
alexzorinandGitHub 3c9e690e19 snap_config: set a timeout when talking to snapd (#9218) 2022-02-28 11:16:58 -08:00
alexzorinandGitHub 9524a9fc16 Merge pull request #9196 from certbot/candidate-1.23.0
Update files from 1.23.0 release
2022-02-10 15:50:16 +11:00
7198f43008 apache: expose aug_save errors in the debug log (#9169)
Fixes #9168.

* apache: expose aug_save errors in the debug log

* logger arguments wrong way around

* log formatting

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2022-01-24 09:33:11 -08:00
alexzorinandGitHub 00f98fa911 letstest: bump ubuntu groovy to impish (#9155) 2022-01-02 00:23:24 +01:00
alexzorinandGitHub 3353c0df43 tests: remove Boulder v1 endpoint from certbot-ci and azure (#9140) 2021-12-13 10:42:15 -08:00
6766786049 Fix Windows webroot crash when multiple domains have the same webroot (#9108)
* Certificate issuing on Window while having web.confing and more then one domain in request

* add a test

* update changelog

Co-authored-by: Serghei Trufkin <Serghei.Trufkin@Technosoft.md>
2021-11-22 19:00:55 +01:00
d2578e05e7 docs: describe how to modify renewal config (#9014)
* docs: describe how to modify renewal config

* Apply suggestions from code review

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

* reword warning about manual modifications

* explain the flags in the --force-renewal command

Co-authored-by: ohemorange <ebportnoy@gmail.com>
2021-11-18 12:14:10 -08:00
alexzorinandGitHub 2746fc572f webroot: unset existing mime type in web.config (#9092) 2021-11-15 14:35:18 +11:00
alexzorinandGitHub 4756b66089 docs: update intersphinx url for certbot project (#9096) 2021-11-11 09:44:59 +01:00
alexzorinandGitHub 8f8dd2824e Merge pull request #9082 from certbot/candidate-1.21.0
Update files from 1.21.0 release
2021-11-04 12:41:05 +11:00
alexzorinandGitHub 2375d87831 delete: add a warning about safe deletion (#8949) 2021-10-20 13:57:48 +11:00
alexzorinandGitHub 15c2792036 Merge pull request #9057 from certbot/candidate-1.20.0
Update files from 1.20.0 release
2021-10-06 18:54:52 +11:00
alexzorinandGitHub bb2db252a7 stop using deprecated jose abstractclassmethod (#9045)
The josepy 1.10.0 release deprecated this decorator and [caused the nightly `nopin` test to break](https://dev.azure.com/certbot/certbot/_build/results?buildId=4548&view=logs&j=ce03f7c1-1e3f-5d55-28be-f084e7c62a50&t=597fea95-d44e-53a2-5b71-76ed20bd4dde).
2021-09-28 10:48:50 -07:00
alexzorinandGitHub abe23c0e60 missing trailing '?' in non-interactive checklist (#9043) 2021-09-22 11:07:30 -07:00
alexzorinandGitHub b0aa064640 dns-rfc2136: use certbot's own is_ipaddress func (#9035)
* dns-rfc2136: use certbot's own is_ipaddress func

* oldest: pin dnspython==1.15.0 (epel8 version)

* inhibit deprecationwarning for dnspython==1.15.0

* dns-rfc2136: declare minimum version of dnspython

* add changelog entry
2021-09-14 07:48:15 +10:00
alexzorinandGitHub aea3c7e363 add --no-reuse-key (#9029)
Fixes #9002.
2021-09-10 12:27:53 -07:00
alexzorinandGitHub 0b63d81f95 cli: minor copy changes to renew help text (#9025)
Fixes #9009.
2021-09-09 12:13:09 -07:00
alexzorinandGitHub d139e26a1c fix 'NEXT STEPS' being printed to stdout during -q (#9023)
@osirisinferi noticed [in chat](https://opensource.eff.org/eff-open-source/pl/sa85u4n71tywfpc15c1wu59wae) that "NEXT STEPS:" was ignoring `--quiet` and was being printed unconditionally.

I think it ended up being written this way in #8860 because I was trying not to avoid dumping ANSI escapes and newlines into the log file and confused myself in the process. 

This change makes things a bit more explicit in separating presentation/message.

* fix 'NEXT STEPS' being printed to stdout during -q

* fix tests
2021-09-09 12:10:27 -07:00
alexzorinandGitHub dedd0b84a8 Merge pull request #9024 from certbot/candidate-1.19.0
Update files from 1.19.0 release
2021-09-09 08:42:39 +10:00
alexzorinandGitHub 70a18a9486 disable donation prompt during --quiet (#9022)
Issuing a certificate with --quiet was crashing during the donation
atexit call because it was trying to use the /dev/null fd after the
displayer context manager had already closed it.
2021-09-07 08:38:27 -07:00
alexzorinandGitHub b7bde05aee docs: redirect macOS users to different cron guide (#9013)
Due to macOS having some complications about Certbot from Homebrew being
in the PATH, the instructions we have in the Automated Renewal section
do not work for them. Instead, send those users to the instruction
generator.
2021-09-03 07:49:25 -07:00
alexzorinandGitHub 8ff7153019 snap: revert to checking snapctl file existence (#9018)
While the previous approach of testing the functionality of snapctl
worked, the snapd developers told us they could not guarantee its
reliability.

---

As with #8955, I tested this on Debian 9, 10 and CentOS 7, 8, Stream.
2021-09-03 07:47:12 -07:00
alexzorinandGitHub 694c03bd6a lower coverage threshold for rfc2136 integration (#9006) 2021-08-25 07:40:26 -07:00
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
alexzorinandGitHub 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
alexzorinandGitHub 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
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
alexzorinandGitHub 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
alexzorinandGitHub a105b587ac apache: fix crash when authenticating empty vhosts (#8941)
Fixes #8940.
2021-07-15 11:12:14 -07:00
alexzorinandGitHub 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
alexzorinandGitHub 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
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
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
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
alexzorinandGitHub 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
alexzorinandGitHub 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
alexzorinandGitHub d7b26c1bb2 cli: dont use argv[0] in user-facing messages (#8857) 2021-06-09 14:31:15 -07:00
alexzorinandGitHub 3380694fa8 windows: fix colors and bold text not rendering (#8872)
Fixes #8848.
2021-05-28 10:36:51 -07:00
alexzorinandGitHub a02223a97f cli: later printing of renewal and install retry advice (#8860)
* later printing of renewal and install retry advice

Move printing of advice for automated renewal, and retrying installation
in case of failure, towards the end of `run` and `certonly`.

Also adds some renewal advice for the --csr case (no autorenewal).

* update renewal advice for preconfigured-renewal

* rewrite in terms of "NEXT STEPS" for run/certonly

* fix lint

* re-add "Could not install certificate"

* update --csr renewal advice

* rewrite non-preconfigured-renewal renewal advice
2021-05-26 15:16:12 -07:00
alexzorinandGitHub 7ce86f588b windows: always run with --preconfigured-renewal (#8867)
Adds a Pynsist extra_preamble in the Certbot entry_point for the
Windows installer, ensuring the flag is always set.
2021-05-26 15:45:40 +02:00
alexzorinandGitHub 39b396763a apache/nginx: certbot>=1.10.0 -> 1.10.1 (#8859)
1.10.0 was a bad release and this breaks our oldest Boulder tests.


I bumped the version to 1.10.0 in #8852 to get access to a new public display_util API, but that was the release with the broken deprecation of `--manual-public-ip-logging-ok`. So let's bump it to 1.10.1.
2021-05-25 08:40:18 -07:00
alexzorinandGitHub 2df279bc5b cli: dont double-print choosing plugins error (#8850) 2021-05-17 16:39:04 -07:00
alexzorinandGitHub c48adc5753 docker: delete CARGO_HOME (#8839) 2021-05-11 01:03:35 +02:00
alexzorinandGitHub e4f5aced1c docs: add certbot-dns-azure third-party plugin (#8796) 2021-04-22 12:38:18 -07:00
alexzorinandGitHub a12d91aef6 fix various fd leaks (#8747)
* fix various fd leaks

* use context manager for display provider
2021-04-06 00:50:12 +02:00
alexzorinandGitHub 9fdb24331c docs: rewrite "Automated Renewals" in User Guide (#8717) 2021-03-22 15:05:37 -07:00
alexzorinandGitHub 76895457c9 dns-digitalocean: use a 30 second TTL (#8693)
Fixes an issue with long TTLs and caching behavior on DigitalOcean's
DNS hosting service.
2021-03-09 15:56:51 -08:00
alexzorinandGitHub 1e30723003 revoke: try determine the server automatically (#8691)
* revoke: try determine the server automatically

When revoking via --cert-name, use the server from the lineage (unless
overriden by the CLI).

* RenewableCert.storage might be None

* guard against an empty lineage server
2021-03-01 12:56:22 -08:00
alexzorinandGitHub fab9bfd878 nginx: authenticate all matching vhosts for HTTP01 (#8663)
* nginx: authenticate all matching vhosts for HTTP01

Previously, the nginx authenticator would set up the HTTP-01 challenge
response on a single HTTP vhost which matched the challenge domain.

The nginx authenticator will now set the challenge response on every
vhost which matches the challenge domain, including duplicates and HTTPS
vhosts.

This makes the authenticator usable behind a CDN where all origin
traffic is performed over HTTPS and also makes the authenticator work
more reliably against "invalid" nginx configurations, such as those
where there are duplicate vhosts.

* some typos

* dont authenticate the same vhost twice

One vhost may appear in both the HTTP and HTTPS vhost lists. Use a set()
to avoid trying to mod the same vhost twice.

* fix type annotations

* rewrite changelog entry
2021-02-26 13:43:22 -08:00
alexzorinandGitHub f71298f661 cli: make key_path and cert_path always be a str (#8687)
There is some code in [`_paths_parser`](https://github.com/certbot/certbot/blob/ae3ed200c09f2d1913ec69c33a2604ae1fe32eb5/certbot/certbot/_internal/cli/paths_parser.py#L17-L34) which has the effect of varying the value type of `config.cert_path` and `config.key_path` based on the CLI verb. When the verb is `revoke`, the type is a tuple `(path: str, contents: bytes)`, otherwise it is a single `str` representing the file path. (I wasn't able to find a written reason as to why it works this way).

This commit removes that special `revoke` case and ensures it is always a `str`.

Why change it now?

I am trying to write some changes and there's some code in `cert_manager` which only works if the verb is `revoke`, you hack `config.cert_path` to be a tuple beforehand, or you [(not actually in `master`) try sniff for the value type](https://github.com/certbot/certbot/blob/49911afaa62ade1fca4c4ec407f817720cb354e3/certbot/certbot/_internal/cert_manager.py#L224-L227). I have a bad feeling about such workarounds. I would prefer to just make these variables simpler to use, but I'm open to opinions.

In addition to the test suites, I've manually tested `revoke` (including by `--key-path`) and `install`. Are there other places I may have missed?

Unblocks #8636 and #8671.
2021-02-25 11:32:21 -08:00
alexzorinandGitHub 025eb16c7a docs: rewrite "Revoking certificates" (#8657)
* docs: rewrite "Revoking certificates"

- `--cert-name` is supported since a long time ago
- `--delete-after-revoke` is default
- Mention that non-default `--server` must be specified
- Document difference between acme key/cert key revocation methods
- Reshuffle text to keep more important things earlier

* minor edits

* remove revocation note

* remove "preauthorization" revocation method

* rewrite deletion note
2021-02-25 10:22:40 -08:00
alexzorinandGitHub 13d4a99251 test: certbot-ci crash due to no p521 on boulder (#8602)
* test: certbot-ci crash due to no p521 on boulder

The bugfix in #8598 added an integration test to request a certificate
for an EC P-521 key, which is unsupported when ACME_SERVER=boulder,
failing our nightly integration tests.

* add an integration test for all EC curves
2021-01-12 16:08:32 -08:00
alexzorinandGitHub 32fb89df7e docs: add missing /directory to ACMEv2 server URL (#8564) 2020-12-22 15:10:59 -08:00
alexzorinandGitHub a8b6a1c98d update_account: print correct message for -m "" (#8537)
* update_account: print correct message for -m ""

When -m "" was passed on the CLI, Certbot would print that it updated
the email to '' (an empty string) rather than printing that it removed
the contact details.

This commit also refactors the update_account tests to be a bit more
modern.

* use addCleanup instead of tearDown in tests
2020-12-19 07:30:17 +11:00
alexzorinandGitHub 0465643d0a certbot-ci: fix integration-external tests (#8547)
In 96a05d9, mypy testing was added to certbot-ci, but introduced an
undeclared dependency on acme.magic_typing, resulting in a crash when
run under the integration-external tox environment.

This change uses the typing module in certbot-ci in place of
acme.magic_typing. It is already provided via dev_constraints.
2020-12-17 09:06:21 +01: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
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
Alex ZorinandBrad Warren e8139e80be certbot-ci: fix py2 crash in dns_server 2020-11-17 14:58:29 -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
alexzorinandGitHub db2ffea351 Fix #8436 & #8432 tests (#8440)
* tests: fix leaking patch in eff_test.py

* tests: PrintTest->NotifyTest in .display.util

The function was renamed during #8432. This change renames the test as
well.
2020-11-10 14:42:51 -08:00
alexzorinandGitHub bf20f39ceb cli: miscellaneous IReporter removals (#8436)
* certbot delete: use undecorated print

* certbot revoke: use undecorated print

* certbot revoke: remove ireporter usages

* eff: remove IReporter usages

* certbot unregister: remove IReporter usage

* certbot update_account: remove IReporter usages

* certbot run: remove IReporter in duplicate prompt

* fix test_revoke_multiple_lineages
2020-11-09 15:31:27 -08:00
alexzorinandGitHub 11a4882128 certbot.display: add new method to print CLI messages (#8432)
* IDisplay.notification: add `decorate` param.

The flag allows the caller to control whether the message will be
printed in a decorated way (wrapped by hlines) or in an undecorated
way (similar to print).

It is set to true by default, to reflect the existing behavior of the
function.

* IDisplay.notification: write message to debug log

In the same vein as IReporter, this ensures that all notifications which
are shown to the user also make an appearance in the debug log, which
will aid in troubleshooting.

* restore accidentally deleted newline in decoration

* add helper function for printing status messages

* register: use notify rather than logger

Undoes the change in #8393 in favor of the new helper

* comment .display and ._internal.log

Describing when it is suitable to use each

* add more comments to log.py

* make IDisplay.notification decorate arg private

* rename notify->print and move to .display.util

* rename .display.print back to .display.notify

because linters complain about print being a redefined builtin
2020-11-06 16:47:07 -08:00
alexzorinandGitHub bf07ec20b0 run: dont report new certs when only re-installing (#8392) 2020-10-27 12:48:07 -07:00
alexzorinandGitHub b6e3a3ad02 register: remove report_new_account, use logger (#8393) 2020-10-22 17:33:45 -07:00
4eb0b560c5 manual: deprecate --manual-public-ip-logging-ok (#8381)
* manual: deprecate --manual-public-ip-logging-ok

* remove unused cli.report_config_interaction code

Co-authored-by: ohemorange <ebportnoy@gmail.com>
2020-10-22 12:12:54 -07:00