1
0
mirror of https://github.com/certbot/certbot.git synced 2026-01-26 07:41:33 +03:00
Commit Graph

7690 Commits

Author SHA1 Message Date
Brad Warren
42d5b15d55 add GH link 2017-05-16 12:54:15 -07:00
Brad Warren
0a3d06cfd1 fix spacing 2017-05-16 12:53:08 -07:00
Brad Warren
28f7c03f3a Add 0.14.1 notes to the CHANGELOG 2017-05-16 12:49:42 -07:00
Brad Warren
06c7143b21 Merge pull request #4652 from certbot/configargparse0120
Fix configargparse 0.12.0
2017-05-15 15:37:43 -07:00
ohemorange
23e6c28d80 Allow Nginx to insert include files with comments inside (#4666)
* add failing test case

* allow include files to insert comments

* lint
2017-05-15 15:30:50 -07:00
Brad Warren
d467295d2a Make 42d07d7 more closely follow repo conventions 2017-05-15 15:01:54 -07:00
Brad Warren
6723b15f78 Merge pull request #4665 from certbot/span-plan2
Augeas span workarounds
2017-05-15 13:50:21 -07:00
Joona Hoikkala
f5b61d56bd Force augeas file reload to recalculate span indicies 2017-05-15 12:56:45 -07:00
Brad Warren
65f7f3e12b Modify special action types only once 2017-05-15 12:22:47 -07:00
Ryan Pineo
42d07d756d support version 0.12.0 of configargparse
fixes #4648
2017-05-12 20:18:27 -04:00
Brad Warren
f74845f437 Merge pull request #4577 from zjs/topic/zjs/digitalocean-package
DigitalOcean DNS Authenticator
2017-05-11 17:44:43 -07:00
Zach Shepherd
9e206f8024 DigitalOcean DNS Authenticator
Implement an Authenticator which can fulfill a dns-01 challenge using the
DigitalOcean API. Applicable only for domains using DigitalOcean for DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-digitalocean -d`, specifying a
      credentials file as a command line argument. Verified that a
      certificate was successfully obtained without user interaction.
    * Used `certbot certonly --dns-digitalocean -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 digitalocean 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).
    * Credentials file missing token.
    * Credentials file with blank token.
    * Credentials file with incorrect token.
    * Domain name not registered to DigitalOcean account.
2017-05-11 17:26:02 -07:00
Zach Shepherd
71451dd54b security: preserve permissions on renewal conf (#4430)
Ensure that permissions are preserved when renewal data is written to
conf files. This allows users to limit access to the file, if they wish.

Testing done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual Testing
    * Got a new certificate. Restricted the permissions on the renewal
      conf. Renewed the certificate. Verified that the new renewal conf
      permissions matched.
2017-05-11 15:49:34 -07:00
Brad Warren
be7e99a461 Pin dependency versions when using tools/venv.sh (#4629)
* Revert "Pin python-augeas version to avoid error with 1.0.0 (#4422)"

This reverts commit 1c51ae2588.

* make dependency-requirements

* separate certbot and dependency requirements

* fix build.py

* update hashin comment

* simplify release pinning

* separate letsencrypt dependency

* pin hashes in venv

* error out when bad things happen

* use pinned dependencies in tox

* Revert "pin hashes in venv"

This reverts commit 1cd38a9e50.

* use pip_install.sh in venv_common

* quote pip install args

* bump mock version
2017-05-11 10:06:05 -07:00
Brad Warren
e37d5ee92c Merge pull request #4567 from zjs/topic/zjs/cloudflare-package
Cloudflare DNS Authenticator
2017-05-10 15:47:35 -07:00
Zach Shepherd
7955274126 Script to create docs directory for new packages. 2017-05-10 15:26:51 -07:00
Zach Shepherd
db6defe614 Cloudflare DNS Authenticator
Implement an Authenticator which can fulfill a dns-01 challenge using the
Cloudflare API. Applicable only for domains using Cloudflare for DNS.

Testing Done:
 * `tox -e py27`
 * `tox -e lint`
 * Manual testing:
    * Used `certbot certonly --dns-cloudflare -d`, specifying a
      credentials file as a command line argument. Verified that a
      certificate was successfully obtained without user interaction.
    * Used `certbot certonly --dns-cloudflare -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 cloudflare 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).
    * Credentials file missing e-mail address.
    * Credentials file with blank API key.
    * Credentials file with incorrect e-mail address.
    * Credentials file with malformed API key.
    * Credentials file with invalid API key.
    * Domain name not registered to Cloudflare account.
2017-05-10 15:26:51 -07:00
Alexander Krotov
3752ed4ee2 ServerName and ServerAlias are directives, not directories (#4632) 2017-05-10 11:43:56 -07:00
Zach Shepherd
6670f828ef Deduplicate package lists in tox.ini (#4608)
Use substitution of values form other sections[1] to deduplicate information
in tox.ini, including pip install arguments and package paths.

1 - https://tox.readthedocs.io/en/latest/config.html#substitution-for-values-from-other-sections
2017-05-08 11:54:12 -07:00
Yen Chi Hsuan
c6fcb017b8 Use universal_newlines=True whereever the output is used (#4626) 2017-05-08 10:55:02 -07:00
Noah Swartz
1d876aba23 update README (#4623) 2017-05-08 10:54:19 -07:00
Brad Warren
d8fbd4f31d Add 0.14.0 release notes (#4618) 2017-05-05 10:10:28 -07:00
Brad Warren
ef5894bc9f Merge pull request #4619 from certbot/candidate-0.14.0
Release 0.14.0
2017-05-05 10:10:06 -07:00
Yen Chi Hsuan
51ae69698d Allow boulder-fetch.sh run with ip from iproute2 (#4620) 2017-05-05 08:49:54 -07:00
Brad Warren
2754a2d0ae Bump version to 0.15.0 2017-05-04 16:52:29 -07:00
Brad Warren
4be7efbf74 Release 0.14.0 v0.14.0 2017-05-04 16:52:13 -07:00
Brad Warren
0db668f67b remove unnecessary closes causing logging problems (#4616) 2017-05-04 16:35:37 -07:00
Brad Warren
4d0cf8000a make a copy of keys in all python versions (#4614)
* make a copy of keys in all python versions

* documentation++
2017-05-03 18:42:47 -07:00
Brad Warren
13c88f1c02 Properly handle EOF in input (#4612)
* properly handle eof

* cleanup InputWithTimeoutTest

* add test_eof

* add comment about mimicking getpass
2017-05-03 14:44:15 -07:00
ohemorange
a5bd0cf50c Add a test for #4557 (#4609) 2017-05-02 18:37:54 -07:00
ohemorange
7016874243 Switch to using include directive for Nginx constants (#4557)
* Switch to using include directive for Nginx constants

* remove deprecated comment

* give better error message when attempting to insert an existing directive

* make code more readable

* add docstrings

* allow a duplicated directive if it's identical

* comment out precisely repeated directives

* add comments
2017-05-02 17:56:56 -07:00
Brad Warren
83064941bc Merge pull request #4607 from certbot/joohoi_multiple_vhosts2
Multiple vhosts 2
2017-05-02 17:55:38 -07:00
Joona Hoikkala
65c7a5a6f7 Add support for multivhosts in Apache
* Case sensitivity fixes

* Clean up merge leftovers

* Get correct vhost paths when appending to already existing multivhost -le-ssl.conf

* Test, lint and reverter fixes

* Make py26 happy

* Removed skeletons

* Changed new vhost matching

* Added span flag for augeas init

* Extract VirtualHost using aug_span

* Removed dead code

* Fix tests to mitigate not being able to reload Augeas span values after write

* Small fixes and test coverage

* Implementing changes requested in review
2017-05-02 15:56:55 -07:00
Brad Warren
6b26015752 Further Apache multivhost improvements
* Don't filter vhosts on path if you've done so already

* add get_internal_aug_path

* Use relative augeas paths to determine if a file contains multiple virtual hosts
2017-05-02 15:56:48 -07:00
Peter Eckersley
2613a8b579 Continue work on Apache multivhost
* Apache: do not assume directives will be CamelCased

* Fixup

* Elaborate

* Simplify the definition of vh_p
2017-05-02 15:38:49 -07:00
Noah Swartz
f57f35b1dd Start work on multivhost support in Apache
* get through parsing

* not slice

* add mult vhost per file

* idx line backwards

* blocks be wrong

* always close ifmod

* let's not mess up indexes

* don't double add multi

* fix some lint, only dedupe multi

* tests

* fix lint

* in progress bit flip

* try to pick the right vhost

* take Dominic's suggestion

* don't redo search

* add ancestor

* we now support multiple vhosts

* yay

* add docstrings
2017-05-02 15:38:27 -07:00
Brad Warren
79d5c890c3 Add a timeout to prompts (#4601)
* Add input_with_timeout

* use input_with_timeout
2017-05-01 14:55:31 -07:00
Brad Warren
5ca8f7c5b9 Add lockfile (#4449)
* add lock_file

* cleanup lock file

* Add LockFile tests

* add lock_dir

* add lock_dir_until_exit

* add set_up_core_dir and move lock_dir_until_exit

* Move lock_and_call to certbot.test.util

* Add lock to Apache

* Add lock to the Nginx plugin

* Improve permissions error message

* sort plugins

* add test_prepare_order

* provide more actionable permissions error

* Document and catch use of OSError

* don't lock a directory twice

* add conditional dependency on ordereddict

* Add lock_test

* expand sorted plugins comment

* Add lock_test to lint

* make make_lineage more conventional and flexible

* enhance lock_test.py

* add lock_test to tox

* Readd success message

* make py26 happy

* add test_acquire_without_deletion
2017-05-01 14:49:12 -07:00
Benjamin Qin
4ca702f6fb Update doc using.rst to correct a sample script (#4582)
'More information about renewal....' should not be part of the code block.
2017-05-01 09:43:07 -07:00
ohemorange
5885b09e13 Merge pull request #4354 from certbot/more-ua
Add extra information to user-agent
2017-04-28 19:17:39 -07:00
Peter Eckersley
72b6179e0e Remove vestigial thingy 2017-04-28 18:46:01 -07:00
Peter Eckersley
f6c02728e4 Address review comments 2017-04-28 18:42:03 -07:00
Peter Eckersley
0a4ee306a9 Fix UA flag setting (and set more of them) 2017-04-28 18:02:34 -07:00
Brad Warren
8fa12bef8e Tell the world we're Python 3 compatible (#4568)
* Mention python 3 support in setup.py

* Build universal (py2 and py3 compatible) wheels

* Mention Python 3.3+ support in docs

* we work on python 3.6 too
2017-04-28 16:06:45 -07:00
Brad Warren
89af460792 Reuse dynamic install_requires. (#4554)
* Revert "Make argparse dependency unconditional. (#2249)"

  This reverts commit 8f10103496.

* Update comment about environment markers
2017-04-28 15:03:50 -07:00
yomna
72fa27514e fix for issue 4132: increasing server_names_hash_bucket_size if necessary (#4496)
* increases server_names_hash_bucket_size if it's too low in your nginx conf

* switching from k,v pairwise indices -> inner_line

* simply using bucket_directive
2017-04-27 10:46:33 -07:00
ohemorange
1611df4120 Allow empty nginx blocks (#4555)
* modify test config file to allow valid config that fails to parse in parser.py

* make failing tests pass by fixing the problem
2017-04-26 18:44:06 -07:00
Noah Swartz
5f9c6539d5 make a list of contributors (#4508)
* make a list of contributors

* make all links websites

* alphebetize and remove extra file

* remove ref to contributors

* add one more!

* sort using linux sort command
2017-04-26 14:57:23 -07:00
schoen
0c4e813a72 Demote PEM generation to logger.debug (#4549) 2017-04-26 10:54:40 -07:00
Zach Shepherd
b41472afce Enhance display.util to support input validation (#4372)
* display: support validation of user input

To avoid each caller of `display.input` and `display.directory_select`
needing to implement validation logic, this allows for a validator to be
supplied as a part of the call.

Following the existing pattern from `webroot`, this validator is expected
to throw a `Error` when it encounters invalid input. The user then
receives a `notification` is re-prompted.

Testing Done:
 * tox -e py27
 * tox -e lint

* plugins: update webroot to use display's validation functionality

This change updates the webroot plugin to use the now-built-in validation
functionality in display, reducing duplicated code.

Testing Done:
 * tox -e py27
 * tox -e lint

* display: move validation logic to ops

To avoid adding complexity to `IDisplay` methods, move validation logic
to helper methods in `display.ops`.

Testing Done:
 * tox -e py27
 * tox -e lint
2017-04-24 17:36:00 -07:00