Skip to content
Permalink
Branch: master
Commits on Oct 3, 2019
  1. Add test farm tests for Debian 10 (#7421)

    bmw committed Oct 3, 2019
    Fixes #7225.
    
    I got the AMI ID from https://wiki.debian.org/Cloud/AmazonEC2Image/Buster.
    
    You can see all test farm tests including test_tests.sh passing with these changes at https://travis-ci.com/certbot/certbot/builds/130318446.
Commits on Oct 2, 2019
  1. Remove unnecessary account ID match check. (#7416)

    jsha authored and bmw committed Oct 2, 2019
    * Remove unnecessary account ID match check.
    
    Right now the Account object calculates an ID using md5. This is
    unnecessary and causes problems on FIPS systems that forbid md5. It's
    just as good to pick a random series of bytes for the ID, since the ID
    gets read out of renewal/foo.conf.
    
    However, if we switched the algorithm right now, we could wind up
    breaking forward compatibility / downgradeability, since older versions
    would run into this check.
    
    Removing this check now lays the ground to change the ID-calculation
    algorithm in the future.
    
    Related to #1948 and
    #1013 (comment).
    
    * Remove test.
    
    * Remove unused import.
Commits on Oct 1, 2019
  1. Merge pull request #7415 from certbot/candidate-0.39.0

    bmw committed Oct 1, 2019
    Candidate 0.39.0
  2. Bump version to 0.40.0

    ohemorange committed Oct 1, 2019
  3. Release 0.39.0

    ohemorange committed Oct 1, 2019
  4. Keep compatibility with IE11 in the Nginx plugin (#7414)

    bmw committed Oct 1, 2019
    As discussed at mozilla/server-side-tls#263, Mozilla's current intermediate recommendations drop support for some non-EOL'd versions of IE. [Their TLS recommendations were updated to suggest a couple possible workarounds for people who need this support](mozilla/server-side-tls#264) and [April suggested that we make this change in Certbot](mozilla/server-side-tls#263 (comment)).
    
    We know `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA` translates to `ECDHE-RSA-AES128-SHA` because [nginx uses the same cipher format as OpenSSL](https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ciphers) and the translation is shown in the table at https://github.com/mozilla/server-side-tls/blob/gh-pages/Cipher_Suites.mediawiki.
    
    The risk of regressions making this change is low as we always had this ciphersuite enabled just a few releases ago: https://github.com/certbot/certbot/tree/v0.36.0/certbot-nginx/certbot_nginx
    
    * Keep compatibility with IE11
    
    * update changelog
Commits on Sep 30, 2019
  1. Add CentOS 8 support to certbot-auto. (#7406)

    bmw committed Sep 30, 2019
    Fixes #7396.
Commits on Sep 27, 2019
  1. Remove listing for broken icecast plugin. (#7408)

    bmw committed Sep 27, 2019
    The repo description for the [3rd party Icecast plugin](https://github.com/e00E/lets-encrypt-icecast) says that the plugin isn't currently working and the repository hasn't been updated since 2017. Since it seems broken and unmaintained, let's remove it from the list of third party plugins.
    
    I would happily add it again to the list of third party plugins if people fix and maintain it.
  2. Remove listing for broken heroku plugin (#7409)

    bmw committed Sep 27, 2019
    The README for the [3rd party heroku plugin](https://github.com/gboudreau/certbot-heroku) says it has been deprecated. Because of this, let's remove it from the list of third party plugins.
  3. Try to use platform.linux_distribution() before distro equivalent (#7403

    joohoi authored and bmw committed Sep 27, 2019
    )
    
    Try to primarily fall back to using `platform.linux_distribution()` if `/etc/os-release` isn't available. Only use `distro.linux_distribution()` on Python >= 3.8.
    
    * Try to use platform.linux_distribution() before distro equivalent
    
    * Fix tests for py38
    
    * Added changelog entry
Commits on Sep 26, 2019
  1. Fix to run with Apache on RHEL 6 (#7401)

    kmaehashi authored and bmw committed Sep 26, 2019
    This PR fixes a regression in #7337 (0.38.0) that certbot cannot run with Apache on RHEL 6.
    
    In RHEL 6, `distro.linux_distribution()` returns `RedHatEnterpriseServer`.
    
    In RHEL 6:
    
    ```py
    >>> import distro
    >>> distro.linux_distribution()
    (u'RedHatEnterpriseServer', u'6.10', u'Santiago')
    
    >>> import platform
    >>> platform.linux_distribution()
    ('Red Hat Enterprise Linux Server', '6.10', 'Santiago')
    ```
    
    In RHEL 7:
    
    ```py
    >>> import distro
    >>> distro.linux_distribution()
    ('Red Hat Enterprise Linux Server', '7.6', 'Maipo')
    
    >>> import platform
    >>> platform.linux_distribution()
    ('Red Hat Enterprise Linux Server', '7.6', 'Maipo')
    ```
    
    * fix to run with Apache on RHEL 6
    
    * fix docs
Commits on Sep 24, 2019
  1. List support for Python 3.8 (#7392)

    bmw committed Sep 24, 2019
    Fixes #7368.
    
    When updating the changelog, I replaced the line about running tests on Python 3.8 because I personally think that support for Python 3.8 is the most relevant information for our users/packagers about our changes in this area.
    
    * List support for Python 3.8.
    
    * Update changelog.
  2. Don't send OCSP requests for expired certificates (#7387)

    ohemorange authored and bmw committed Sep 24, 2019
    Fixes #7152.
    
    * don't check ocsp if cert is expired when getting cert information
    
    * don't check ocsp if the cert is expired in ocsp_revoked
    
    * update tests
    
    * update changelog
    
    * move pytz import to the top of the test file
Commits on Sep 23, 2019
  1. [Windows] Create a certbot renew scheduled task using the installer (#…

    adferrand authored and bmw committed Sep 23, 2019
    …7371)
    
    This PR implements the item "register a scheduled task for certificate renewal" from the list of requirements described in #7365.
    
    This PR adds required instructions in the NSIS installer for Certbot to create a task, named "Certbot Renew Task" in the Windows Scheduler. This task is run twice a day, to execute the command certbot renew and keep the certificates up-to-date.
    
    Uninstalling Certbot will also remove this scheduled task.
    
    * Implementation
    
    * Corrections
    
    * Update template.nsi
    
    * Improve scripts
    
    * Add a random delay of 12 hours
    
    * Synchronize template against default one in pynsist 2.4
    
    * Clean config of scheduled task
    
    * Install only in AllUsers mode
    
    * Add comments
    
    * Remove the logic of single user install
Commits on Sep 20, 2019
  1. Fix Windows sdist. (#7384)

    bmw authored and adferrand committed Sep 20, 2019
Commits on Sep 17, 2019
  1. Use xenial globally (#7380)

    bmw committed Sep 17, 2019
    As described at #7372 (comment), Travis is transitioning people to Xenial, but it seems this transition still may not be complete as some of our jobs ran on Trusty with all references to `dist` removed as seen at https://travis-ci.com/certbot/certbot/builds/127960999.
    
    This PR sets `dist: xenial` globally and overrides it as needed for the oldest tests.
    
    * Set xenial globally.
    
    * Use trusty in all oldest tests.
Commits on Sep 16, 2019
  1. Get integration tests working on python 3.8 (#7372)

    ohemorange committed Sep 16, 2019
    * Get integration tests working on python 3.8
    
    * Run unit tests on py38
    
    * Update coveragercs to use coverage 4.5+ format
    
    * remove line added to tox.ini
    
    * update changelog
    
    * xenial is the new travis default; no need to specify in .travis.yml
Commits on Sep 6, 2019
  1. [Windows|Linux] Forbid os.stat and os.fstat (#7325)

    adferrand and bmw committed Sep 6, 2019
    Fixes #7212
    
    This PR forbid os.stat and os.fstat, and fix or provide alternatives to avoid its usage in certbot outside of certbot.compat.filesystem.
    
    * Reimplement private key mode propagation
    
    * Remove other os.stat
    
    * Remove last call of os.stat in certbot package
    
    * Forbid stat and fstat
    
    * Implement mode comparison checks
    
    * Add unit tests
    
    * Update certbot/compat/filesystem.py
    
    Co-Authored-By: Brad Warren <bmw@users.noreply.github.com>
    
    * Update certbot/compat/filesystem.py
    
    Co-Authored-By: Brad Warren <bmw@users.noreply.github.com>
    
    * Handle case where multiple ace concerns a given SID in has_min_permissions
    
    * Add a new test scenario
    
    * Add a simple test for has_same_ownership
    
    * Fix name function
    
    * Add a comment explaining an ACE structure
    
    * Move a test in its dedicated class
    
    * Improve a message error
    
    * Calculate has_min_permission result using effective permission rights to be more generic.
    
    * Change an exception message
    
    * Add comments, avoid to skip a test.
    
    * Update certbot/compat/filesystem.py
    
    Co-Authored-By: Brad Warren <bmw@users.noreply.github.com>
  2. Simplify testing of RHEL 8. (#7323)

    bmw authored and adferrand committed Sep 6, 2019
Commits on Sep 5, 2019
  1. Disable TLS session tickets in Nginx (#7355)

    ohemorange authored and sydneyli committed Sep 5, 2019
    * Find OpenSSL version
    
    * Create and update various config files
    
    * Update logic to use new version constraints
    
    * SSL_OPTIONS_HASHES_NEW and SSL_OPTIONS_HASHES_MEDIUM were just being used for testing, and maintaining them is becoming untenable, so remove them.
    
    * if we don't know the openssl version, we can't turn off session tickets
    
    * add unit test for _get_openssl_version
    
    * add unit tests
    
    * placate lint
    
    * Fix docs and tests and clean up code
    
    * use python correctly
    
    * update changelog
    
    * Lint
    
    * make comment a comment
Commits on Sep 4, 2019
  1. Merge pull request #7364 from certbot/candidate-0.38.0

    ohemorange committed Sep 4, 2019
    Update files from 0.38.0 release
Commits on Sep 3, 2019
  1. [Windows] Create an installer for Certbot (#7324)

    adferrand and bmw committed Sep 3, 2019
    This PR is the first step to create an official distribution channel of Certbot for Windows. It consists essentially in creating a proper Certbot Windows installer.
    
    Usually distributing an application requires, in a way or another, to stabilize the application logic and its dependencies around a given version. On Windows, this usually takes the form of a freezed application, that vendors its dependencies into a single executable.
    
    There are two well-known solutions to create an executable shipping a Python application on Windows: [py2exe](http://www.py2exe.org/) and [pyinstaller](https://www.pyinstaller.org/). However these solutions create self-executable `.EXE` files: you run the `.EXE` file that launches immediately the software.
    
    This is not a end-user solution. Indeed when a Windows user wants to install a piece of software, he expects to find and download an installer. When run the installer would interface with Windows to setup configuration entries in the Registry, update the environment variable, add shortcuts in the Start Menu, and declare a uninstaller entry into the Uninstaller Manager. Quite similarly, this is what you would get from a `.deb` or `.rpm` package.
    
    A solution that builds proper installers is [pynsis](https://pynsist.readthedocs.io/en/latest/). It is a Python project that constructs installers for Python software using [NSIS](https://sourceforge.net/projects/nsis/), the most known free Windows installer builder solution.
    
    This PR uses pynsist to build a Windows installer. The Python script to launch the installer build is `.\windows-installer\construct.py`. Once finished, the installer is located in `.\windows-installer\build\nsis`.
    
    This installer will do the following operations during the installation:
    * copy in the install path a full python distribution used exclusively for Certbot
    * copy all Python requirements gathered from the `setup.py` of relevant certbot projects
    * copy `certbot` and `acme`
    * pre-build python binary assets
    * register the existence of the application correctly in Windows Registry
    * prepare a procedure to uninstall Certbot
    * and of course, expose `certbot` executable to the Windows command line, like on Linux, to be able to launch it as any CLI application from Batch or Powershell
    
    This installer support updates: downloading a new version of it and running it on a Windows with existing installation of Certbot will replace it with the new version.
    
    Future capabilities not included in this PR:
    * auto-update of Certbot when a new release is available
    * online documentation for Windows
    * register a scheduled task for certificate renewal
    * installer distribution (continuous deployment + distribution channels)
    * method to check the downloaded installer is untampered
    
    * Setup config
    
    * Fix shortcut
    
    * Various improvments
    
    * Update windows-installer/construct.py
    
    Co-Authored-By: Brad Warren <bmw@users.noreply.github.com>
    
    * Split into several method
    
    * Change installer name
    
    * Remove DNS plugins for now
    
    * Add a comment about administrator privileges
    
    * Update welcome
    
    * Control python version
    
    * Control bitness
    
    * Update windows-installer/construct.py
    
    Co-Authored-By: Brad Warren <bmw@users.noreply.github.com>
    
    * Update windows-installer/construct.py
    
    Co-Authored-By: Brad Warren <bmw@users.noreply.github.com>
    
    * Update windows-installer/construct.py
    
    Co-Authored-By: Brad Warren <bmw@users.noreply.github.com>
  2. Bump version to 0.39.0

    bmw committed Sep 3, 2019
  3. Release 0.38.0

    bmw committed Sep 3, 2019
Commits on Aug 28, 2019
  1. list py37 support (#7360)

    bmw committed Aug 28, 2019
    These plugins also support Python 3.7. You can see tests passing at https://travis-ci.com/certbot/certbot/jobs/228820500.
  2. Replace platform.linux_distribution with distro.linux_distribution (#…

    ohemorange authored and bmw committed Aug 28, 2019
    …7337)
    
    Smallest possible fix for #7106 
    
    * Replace platform.linux_dependencies with distro.linux_dependencies
    
    * run build.py
    
    * Add minimum version of 1.0.1
    
    * Pin back requests package
    
    * Update changelog
Commits on Aug 27, 2019
  1. Fix PYTHONPATH in integration tests (#7357)

    adferrand authored and bmw committed Aug 27, 2019
    This PR supersedes #7353.
    
    It fixes the execution of nginx oldest tests when these tests are executed on top of the modifications made in #7337. This execution failure revealed the fact that in some cases, the wrong version of certbot logic was used during integration tests (namely the logic lying in the codebase of the branch built, instead of the logic from the version of certbot declared by certbot-nginx for instance).
    
    I let you appreciate my inline comment for the explanation and the workaround.
    
    Thanks a lot to @bmw who found this python/pytest madness.
    
    You can see the oldest tests succeeding with the logic of #7337 + this PR here: https://travis-ci.com/certbot/certbot/builds/124816254
    
    * Remove certbot root from PYTHONPATH during integration tests
    
    * Add a biiiiig comment.
Commits on Aug 23, 2019
  1. Merge pull request #7336 from certbot/update-debian-instructions

    schoen committed Aug 23, 2019
    Update Debian instructions in docs
  2. Ensure relpath is executed on paths in the same drive (#7335)

    adferrand authored and bmw committed Aug 23, 2019
    On Windows you can have several drives (`C:`, `D:`, ...), that is the roughly (really roughly) equivalent of mount points, since each drive is usually associated to a specific physical partition.
    
    So you can have paths like `C:\one\path`, `D:\another\path`.
    
    In parallel, `os.path.relpath(path, start='.')` calculates the relative path between the given `path` and a `start` path (current directory if not provided). In recent versions of Python, `os.path.relpath` will fail if `path` and `start` are not on the same drive, because a relative path between two paths like `C:\one\path`, `D:\another\path` is not possible.
    
    In saw unit tests failing because of this in two locations. This occurs when the certbot codebase that is tested is on a given drive (like `D:`) while the default temporary directory used by `tempfile` is on another drive (most of the time located in `C:` drive).
    
    This PR fixes that.
  3. address review comments

    bmw committed Aug 23, 2019
Commits on Aug 22, 2019
  1. use latest RHEL 7 AMI (#7349)

    bmw committed Aug 22, 2019
Older
You can’t perform that action at this time.