https://github.com/komuw/sewer
Let's Encrypt(ACME) client. Python library & CLI app.
https://github.com/komuw/sewer
acme acme-client certbot certificate-signing-request letsencrypt
Last synced: about 1 year ago
JSON representation
Let's Encrypt(ACME) client. Python library & CLI app.
- Host: GitHub
- URL: https://github.com/komuw/sewer
- Owner: komuw
- License: mit
- Created: 2017-07-07T09:30:40.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-11-24T16:11:32.000Z (over 1 year ago)
- Last Synced: 2025-04-01T16:03:05.860Z (about 1 year ago)
- Topics: acme, acme-client, certbot, certificate-signing-request, letsencrypt
- Language: Python
- Homepage:
- Size: 498 KB
- Stars: 145
- Watchers: 10
- Forks: 55
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
## Sewer
[](https://github.com/komuw/sewer/.github/workflows/build.yml)
[](https://codecov.io/gh/komuW/sewer)
[](https://github.com/komuw/sewer)
Sewer is a Let's Encrypt(ACME) client.
It's name is derived from Kenyan hip hop artiste, Kitu Sewer.
- The stable release is
[0.8.4](https://komuw.github.io/sewer/notes/0.8.4-notes).
- More history (including notes on 0.8.5-to-be) in the
[CHANGELOG](https://komuw.github.io/sewer/CHANGELOG).
PYTHON compatibility: 3.7 and above are tested.
I (maintainer @mmaney) loiter in channel ##sewer (on irc.freenode.net) for
those who remember IRC. Don't ask to ask, but waiting is.
## Features
- Obtain or renew SSL/TLS certificates from [Let's Encrypt](https://letsencrypt.org)
- Supports acme version 2 (current RFC including post-as-get).
- Support for SAN certificates.
- Supports [wildcard certificates](https://komuw.github.io/sewer/wildcards).
- Bundling certificates.
- Support for both RSA and ECDSA for account and certificate keys.
- Supports [DNS and HTTP](https://komuw.github.io/sewer/UnifiedProvider) challenges
- List of currently supported
[DNS services and BYO-service notes](https://komuw.github.io/sewer/dns-01)
- HTTP challenges are a new feature, no operational drivers in the tree
yet. [See usage and BYO-service notes](https://komuw.github.io/sewer/http-01)
- sewer is both a [command-line program](https://komuw.github.io/sewer/sewer-cli)
and a [Python library](https://komuw.github.io/sewer/sewer-as-a-library) for custom use
- Well written(if I have to say so myself):
- [Good test coverage](https://codecov.io/gh/komuW/sewer)
- [Passing continuous integration](https://circleci.com/gh/komuW/sewer)
- [High grade statically analyzed code](https://www.codacy.com/app/komuW/sewer/dashboard)
- type hinting to support mypy verification is a recently begun WIP
## Installation
```shell
pip install sewer
# with All DNS Provider support, include aliyun, Hurricane Electric, Aurora, ACME ...
# pip3 install sewer[alldns]
# with Cloudflare support
# pip3 install sewer[cloudflare]
# with Aliyun support
# pip3 install sewer[aliyun]
# with HE DNS(Hurricane Electric DNS) support
# pip3 install sewer[hurricane]
# with Aurora DNS Support
# pip3 install sewer[aurora]
# with ACME DNS Support
# pip3 install sewer[acmedns]
# with Rackspace DNS Support
# pip3 install sewer[rackspace]
# with DNSPod DNS Support
# pip3 install sewer[dnspod]
# with DuckDNS DNS Support
# pip3 install sewer[duckdns]
# with ClouDNS DNS Support
# pip3 install sewer[cloudns]
# with AWS Route 53 DNS Support
# pip3 install sewer[route53]
# with PowerDNS DNS Support
# pip3 install sewer[powerdns]
```
sewer(since version 0.5.0) is now python3 only. To install the (now
unsupported) python2 version:
```shell
pip install sewer==0.3.0
```
Sewer is in active development and it's API will change in backward incompatible ways.
[https://pypi.python.org/pypi/sewer](https://pypi.python.org/pypi/sewer)
## Development setup
See the how to contribute [documentation](https://github.com/komuw/sewer/blob/master/.github/CONTRIBUTING.md)
## FAQ
- Why another ACME client?
I wanted an ACME client that I could use to programmatically(as a library) acquire/get certificates. However I could not
find anything satisfactory for use in Python code.
- Why is it called Sewer?
I really like the Kenyan hip hop artiste going by the name of Kitu Sewer.