Commit Graph
7797 Commits
Author SHA1 Message Date
Zach Shepherd 9f7c9decce Expand documentation 2017-06-08 11:53:52 -07:00
Zach Shepherd 215c85d7be Provide basic Cloudflare documentation 2017-06-08 11:53:52 -07:00
Zach Shepherd 0671b492d6 Fix warning in Cloudflare docs 2017-06-08 11:53:52 -07:00
Zach ShepherdandBrad Warren a06dec3660 route53: avoid listing the plugin twice in the UI (#4794)
Without this change, the Route53 plugin is listed twice when running
Certbot interactively (once under the old name, once under the new name).

This change ensures only the new name is shown, while maintaining hidden
backwards compatibility with the old name.
2017-06-07 15:16:52 -07:00
ohemorangeandGitHub 239184882e Enable IPv6 support in standalone plugin (#4773)
* add TLSSNI01DualNetworkedServers

* use DualNetworkedServers in certbot/plugins/standalone.py
  also, make both servers run on the same port.

* make probe_sni connect on ipv6 and ipv4 using None

* mimic BSD-like conditions to get test coverage

* test ServerManager taking into account BSD systems

* pass tests even if python is compiled without ipv6 support
2017-06-06 17:04:45 -07:00
Zach ShepherdandBrad Warren af8dae6cb2 Check domains for accidental inclusion of a scheme (#4788)
Currently, accidentally including a scheme with the domain name does not
produce a particularly helpful error message.

Examples without this change:
1. `certbot certonly -d https://test.example.com --webroot`:

Saving debug log to /tmp/certbot/logs/letsencrypt.log
Obtaining a new certificate
An unexpected error occurred:
The request message was malformed :: Error creating new authz :: Invalid character in DNS name
Please see the logfiles in /tmp/certbot/logs for more details.

2. `certbot certonly -d http://hoeveelmensengaveneeneuroomtezienhoeveelmenseneeneurogaven.example.com`

Requested domain http://hoeveelmensengaveneeneuroomtezienhoeveelmenseneeneurogaven.example.com is not a FQDN because label http://hoeveelmensengaveneeneuroomtezienhoeveelmenseneeneurogaven is too long.

Examples with this change:
1. `certbot certonly -d https://test.example.com --webroot`:

Requested name https://test.example.com appears to be a URL, not a FQDN. Try again without the leading "https://".

2. `certbot certonly -d http://hoeveelmensengaveneeneuroomtezienhoeveelmenseneeneurogaven.example.com`

Requested name http://hoeveelmensengaveneeneuroomtezienhoeveelmenseneeneurogaven.example.com appears to be a URL, not a FQDN. Try again without the leading "http://".

(Resolves #4785)
2017-06-06 15:51:16 -07:00
Brad WarrenandGitHub e0f3c05c02 Fix test_apache2.sh test farm test. (#4786)
tools/venv.sh cannot be used as the tests run on systems with Python 2.6 and
tools/venv.sh installs code that is not compatible with Python 2.6.
2017-06-06 15:48:00 -07:00
Zach ShepherdandBrad Warren e749937465 route53: rename to match other DNS plugins (#4747)
This change renames certbot-route53 to certbot-dns-route53 and updates
the package's setup.py file to maintain backwards compatibility.

Testing Done:
 * Run `certbot` with `-a certbot-route53:auth`, verify the plugin runs.
 * Run `certbot` with `--dns-route53`, verify the plugin runs.
2017-06-06 15:41:04 -07:00
Schuyler DuveenandBrad Warren 7531c98916 fixes #3616: make sure there is always one time that we test the sock… (#4712) 2017-06-06 10:11:33 -07:00
Zach ShepherdandBrad Warren f0e1be55d6 route53: make sleep duration configurable like other DNS authenticators (#4771)
* Re-structure perform to allow for easier refactoring

* Refactor to use dns_common

* Make ttl a class variable, like other plugins
2017-06-05 21:20:17 -07:00
Zach ShepherdandBrad Warren a926d42bd6 Use certificate instead of cert in DNS plugin descriptions (#4784) 2017-06-05 19:06:35 -07:00
Brad WarrenandGitHub 89e63eaf84 Use certificate in NS1 plugin flag's help. (#4783) 2017-06-05 18:21:47 -07:00
Zach ShepherdandBrad Warren 4448a86013 Handle releasing of DNS subpackages not yet included in certbot-auto (#4779)
Add the DNS subpackages being considered for future inclusion in
certbot-auto as non-certbot-auto packages for the 0.15.0 release.
2017-06-05 17:59:56 -07:00
Brad WarrenandGitHub 962879c35c Remove dependency on git from pip_install.sh. (#4770)
* Remove dependency on git from pip_install.sh.

Using git allowed this file to continue to work even if it was moved to another
directory. This slight increase in robustness wasn't worth it though as it
broke our development Dockerfile (see #4703), the certbot website's Dockerfile
(see certbot/website#226), and our test farm tests (see
certbot/tests/letstest/scripts/test_apache2.sh for an example that calls
tools/venv.sh without installing git). Rather than continuing to find and patch
these things, let's just allow this script to fail if it's moved rather than
propagating the git dependency all over the place.

* Add readlink.py.

This is the equivalent of `readlink -f` on many Linux systems. This is useful
as there are often differences in readlink on different platforms.

* Use readlink.py in pip_install.sh.

This allows us to work around differences in readlink on macOS.
2017-06-05 17:51:45 -07:00
Zach ShepherdandBrad Warren 2325438b56 route53: fix error handling (#4760)
Make error handling match other plugins:
 * Raise `PluginError` instead of errors from underlying libraries
 * Swallow errors during cleanup
2017-06-05 17:09:03 -07:00
Brad WarrenandGitHub 0e4f55982a Remove unused readlink environment variable. (#4781)
The program readlink used to be used in integration tests so an environment
variable was used to handle differences in the executable on different systems.
This command is no longer used though so the variable can be removed.
2017-06-05 15:20:04 -07:00
Zach ShepherdandBrad Warren 6ee934b667 route53: shorten description to one line (#4772)
The new description is less informative than the current one, but its
shorter length makes the interactive plugin selection prompt easier
to read.
2017-06-05 11:44:22 -07:00
Brad WarrenandGitHub d25069d89b Remove reference to .new in Nginx's SSL options. (#4769) 2017-06-01 15:26:54 -07:00
Brad WarrenandGitHub 4f00c3ea75 Merge pull request #4768 from certbot/actually-file-update-apache2
Add mechanism for updating Apache's SSL options
2017-06-01 15:25:53 -07:00
Brad Warren 844c2d3438 Finish work on #4718.
* Update in response to changes in #4720.

* Update ALL_SSL_OPTIONS_HASHES.

* Add warning to Apache's SSL options files.
2017-06-01 14:35:03 -07:00
Erica PortnoyandBrad Warren 44f4743b51 Mechanism for automatically updating options-ssl-apache.conf file
* add file update mechanism + tests to apache

* update with actual hashes, and update apache test to match since there aren't previous versions
2017-06-01 14:35:03 -07:00
Brad WarrenandGitHub ee70799c62 Get full test coverage on certbot.plugins.common. (#4765)
Addresses final review comments on #4720.
2017-06-01 10:55:42 -07:00
Brad WarrenandGitHub 738732a0db Improve bad preferred challenge error message. (#4761)
Using ArgumentTypeError causes Certbot to report an unexpected error occurred
while using ArgumentError causes argparse to print more usage information and
call sys.exit().
2017-06-01 10:42:34 -07:00
Brad WarrenandGitHub 791fea43ec Add regression/system test for #4719 (#4739)
* Add regression/system test for #4719.

* Test for regressions with --help and invalid args.

* Handle expected failure properly.
2017-06-01 09:57:27 -07:00
ohemorangeandBrad Warren fc097de5ff Refactor nginx file update mechanism in preparation for working with apache plugin (#4720)
* move install_ssl_options_conf functionality to common

* add no cover

* compute current hash instead of saving

* make current hash be computed; switch to list of all canonical hashes

* put message directly into assertion

* don't pass logger

* add docstring

* Add unit tests for certbot.plugins.common.install_ssl_options_conf
2017-06-01 09:04:48 -07:00
Yen Chi HsuanandBrad Warren c9e9879ad9 Enable unit tests on OS X (#4697)
* Add OS X test

* Fix apache tests

* Use absolute path first so that certbot works with non-standard $PATH

Some tests use a fake $PATH, which prevents invoking `sw_vers`

* Also test Python 3 on Mac

* Set ulimit to fix "Too many open files"
2017-06-01 09:03:54 -07:00
Jeff R. AllenandBrad Warren 6f98987c12 Added options to set the listen address for standalone mode (#4694)
Fixes #255.
2017-06-01 09:02:14 -07:00
Zach ShepherdandBrad Warren c9ff9e3c7a route53: add unit tests (#4725)
This change introduces unit tests to cover all lines of the route53
plugin except for the timeout in `_wait_for_change`.
2017-05-31 15:25:24 -07:00
Zach ShepherdandBrad Warren 40e8fc4dec Handle releasing subpackages not included in certbot-auto (#4758)
This change refactors the release script to handle subpackages which are
not bundled as a part of cerbot-auto.

The script now allows developers to define subpackages as either being
included in certbot-auto, or not.

The script then uses one of three sets of subpackages for each operation:
 * The version number is updated for all non-certbot subpackages
   (and certbot itself is handled separately)
 * sdists and wheels are created for all non-certbot subpackages
   (and certbot itself is handled separately)
 * Testing is performed for all subpackages
 * Hashes are pinned for certbot-auto subpackages (including certbot)
2017-05-31 15:05:55 -07:00
yomnaandBrad Warren d7f9859c3f [#3866]: "certbot certificates" checks validity with OpenSSL (#4155)
* cert signature validation for certificates subcommand + a test

* refactoring validation + adding in a check for making sure that the private key matches the certificate

* adding testing certs

* assertIsNone(x) -> assertEqual(None,x) to unbreak the py2.6 tests

* modifying test_verifu_renewable_cert_failure to hopefully appease python 3 test timeouts

* updating cryptography to be >=1.2 so that we can use verify

* removing unused, old testing certificate

* adding better error handling/logging

* adding test for IOError

* switching to a 2048 bit rsa key
2017-05-31 15:04:41 -07:00
Noah SwartzandBrad Warren 001d90e106 add text telling people to include server config (#4745) 2017-05-31 14:24:40 -07:00
Noah SwartzandGitHub e02245a59f Merge pull request #4560 from certbot/issue_4519
update cert to certificate
2017-05-31 13:48:43 -07:00
Noah SwartzandGitHub bbc7e9259f Merge pull request #4755 from certbot/bump-cryptography-version
Bump pinned cryptography version to 1.8.2
2017-05-31 13:43:55 -07:00
Brad Warren 1276a9f7a3 Remove pinned pyasn1.
Cryptography replaced this dependency with asn1crypto in version 1.8.
2017-05-30 17:27:58 -07:00
Brad Warren df3774e090 Bump pinned cryptography version to 1.8.1.
This allows Certbot tests to pass on macOS.
2017-05-30 17:16:35 -07:00
Andrew IttnerandZach Shepherd ed23290232 Clean up Sphinx errors (#4706)
Also minor copyedits, suppress unhelpful errors, mark files that should
*not* be in the TOC as hidden.
2017-05-26 20:57:14 -07:00
Brad WarrenandGitHub 7fde26a7b4 Merge branch 'master' into issue_4519 2017-05-26 15:56:26 -07:00
Noah Swartz 52b5f5a177 undo changes to cli-help 2017-05-26 14:51:22 -07:00
Zach ShepherdandBrad Warren 6048bfa87b route53: update setup.py to follow repo conventions (#4731)
This change updates the setup script for the route53 plugin to more
closely match conventions from other packages in the repository.

Notable changes:
 * The version number is bumped to match the rest of Certbot.
 * The package now requires a matching version of ACME and core Certbot.
 * Contact information is updated.
 * Additional versions of Python are listed.
2017-05-26 14:44:05 -07:00
Brad WarrenandGitHub 4a0c336484 modification-check.sh now fails if a command fails (#4746) 2017-05-26 14:41:59 -07:00
Zach ShepherdandBrad Warren 4146685104 route53: tweak source organization to match other packages (#4729)
This change re-organizes some ancillary files to more closely match
repository conventions.
2017-05-26 11:28:55 -07:00
Zach ShepherdandBrad Warren c827c9ec5f NS1 DNS Authenticator (#4602)
Implement an Authenticator which can fulfill a dns-01 challenge using
the NS1 DNS API. Applicable only for domains using NS1 DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-nsone -d`, specifying a
      credentials file as a command line argument. Verified that a
      certificate was successfully obtained without user interaction.
    * Used `certbot certonly --dns-nsone -d`, without specifying a
      credentials file as a command line argument. Verified that the
      user was prompted and that a certificate was successfully
      obtained.
    * Used `certbot certonly -d`. Verified that the user was prompted for
      a credentials file after selecting dnsimple interactively and that
      a certificate was successfully obtained.
    * Used `certbot renew --force-renewal`. Verified that certificates
      were renewed without user interaction.
 * Negative testing:
    * Path to non-existent credentials file.
    * Credentials file with unsafe permissions (644).
    * Path to credentials file with an invalid token.
    * Path to credentials file without a token.
    * Domain name not registered to NS1 account.
2017-05-26 11:24:38 -07:00
Brad WarrenandGitHub ed87b86bca Update CHANGELOG.md in response to 0.14.2 release (#4744) 2017-05-26 10:21:57 -07:00
Brad WarrenandGitHub 346659c47f Release 0.14.2 (#4742)
* Release 0.14.2

(cherry picked from commit d9a2612d21)

* Bump version to 0.15.0
2017-05-26 10:21:21 -07:00
Nicholas TaitandBrad Warren 4cbdea6ccb Improve warning message to user after an operation is canceled (#4723)
Fixes #4134
2017-05-25 16:29:19 -07:00
Kevin LeandBrad Warren dc63056da7 add build of Dockerfile-dev (#4717) 2017-05-25 16:27:31 -07:00
Brad WarrenandGitHub 93310fe67c Fixes #4719 (#4737)
* Automatically delete temp log file when not used.

This allows close() calls in logging.shutdown() to cause the file to be
deleted when no logging output has been written to the file.

* Make certbot.log.MemoryHandler.flush() a noop.

This causes MemoryHandler.flush() calls in logging.shutdown to be a noop,
allowing us to control when the handler is actually flushed. This prevents log
records from being sent to a temporary file handler for things like
`certbot --version`.

* Keep reference to certbot.log.MemoryHandler.target

In Python 2.7+, the logging module only keeps weak references to created
logging handlers. Because of this, the MemoryHandler's target will not be
properly flushed and closed when logging.shutdown() is called on program exit
unless we keep a reference to it in the MemoryHandler.

* Fixes #4719.

This completes the changes necessary to fix #4719. Now temporary log files are
not created if sys.exit() is called before logging is fully set up. These files
are still created if Certbot crashes for any other reason.

* Document pre_arg_parse_except_hook args.
2017-05-25 12:16:05 -07:00
Noah Swartz 1670bfb152 fix tests 2017-05-24 14:56:12 -07:00
Noah Swartz f59eb8e630 fix linting issues 2017-05-24 13:06:12 -07:00
Noah Swartz 7edb877ae8 merge with latest master 2017-05-24 12:32:06 -07:00