Sewer is a programmatic Lets Encrypt(ACME) client
Project description
Sewer
Sewer is a Let's Encrypt(ACME) client.
It's name is derived from Kenyan hip hop artiste, Kitu Sewer.
NB: sewer is mostly compatible with CPython back to 3.5, but f-strings in particular keep trying to creep in. As of 0.8.3 none of the core code nor included drivers require f-strings, but they've been showing up in recent contributions and are already in a fair bit of test code. Expect to need at least 3.6+ for sewer 0.9. I would prefer to maintain 3.5 compatibility until then, but it's not currently tested in CI. I will be happy to accept patches for any issues that show up. — @mmaney
Features
- Obtain or renew SSL/TLS certificates from Let's Encrypt
- Supports acme version 2 (current RFC including post-as-get).
- Support for SAN certificates.
- Supports wildcard certificates.
- Bundling certificates.
- Supports DNS and HTTP challenges
- List of currently supported DNS services and BYO-service notes
- HTTP challenges are a new feature, no operational drivers in the tree yet. See usage and BYO-service notes
- sewer is both a command-line program and a Python library for custom use
- Well written(if I have to say so myself):
- Good test coverage
- Passing continuous integration
- High grade statically analyzed code
- type hinting to support mypy verification is a recently begun WIP
Installation
pip3 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, run;
pip install sewer==0.3.0
Sewer is in active development and it's API may will change in backward incompatible ways.
https://pypi.python.org/pypi/sewer
Development setup
See the how to contribute documentation
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size sewer-0.8.3b1-py3-none-any.whl (43.5 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size sewer-0.8.3b1.tar.gz (34.8 kB) | File type Source | Python version None | Upload date | Hashes View |