Skip to main content

Sewer is a programmatic Lets Encrypt(ACME) client

Project description

======
Sewer
======

Sewer is a Let's Encrypt(ACME) client.
It allows you to obtain ssl/tls certificates from Let's Encrypt.
Sewer currently only supports the DNS mode of validation. The only currently supported DNS provider is cloudflare but I will add more as time progresses.


Installation:
=============

`pip install sewer`


Usage:
=======

.. code-block:: python
import sewer

# 1. to create a new certificate:
client = sewer.Client(domain_name='example.com',
CLOUDFLARE_DNS_ZONE_ID='random',
CLOUDFLARE_EMAIL='example@example.com',
CLOUDFLARE_API_KEY='nsa-grade-api-key')
certificate = client.cert()
certificate_key = client.certificate_key
account_key = client.account_key

print "your certicate is:", certificate
print "your certificate's key is:", certificate_key
print "\n\n"
print "you can write them to a file then add that file to your favourite webserver."

with open('certificate.crt', 'w') as certificate_file:
certificate_file.write(certificate)

with open('certificate.key', 'w') as certificate_key_file:
certificate_key_file.write(certificate_key)

print "your account key is:", account_key
print "IMPORTANT: keep your account key in a very safe and secure place."

with open('account_key.key', 'w') as account_key_file:
account_key_file.write(account_key)



# 2. to renew a certificate:
import sewer

with open('account_key.key', 'r') as account_key_file:
account_key = account_key_file.read()

client = sewer.Client(domain_name='example.com',
CLOUDFLARE_DNS_ZONE_ID='random',
CLOUDFLARE_EMAIL='example@example.com',
CLOUDFLARE_API_KEY='nsa-grade-api-key',
account_key=account_key)
certificate = client.renew()
certificate_key = client.certificate_key

with open('certificate.crt', 'w') as certificate_file:
certificate_file.write(certificate)

with open('certificate.key', 'w') as certificate_key_file:
certificate_key_file.write(certificate_key)



TODO:
=====
- make it DNS provider agnostic
- support more DNS providers
- add robust tests
- be able to handle SAN(subject alternative names)



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?
Because, for the longest time now, getting certificates has felt like wading through sewers. That was before Let's Encrypt showed up.
Also, I really like the Kenyan hip hop artiste going by the name of Kitu Sewer.



Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sewer-0.0.2.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

sewer-0.0.2-py2-none-any.whl (8.1 kB view details)

Uploaded Python 2

File details

Details for the file sewer-0.0.2.tar.gz.

File metadata

  • Download URL: sewer-0.0.2.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for sewer-0.0.2.tar.gz
Algorithm Hash digest
SHA256 60692db9d73bb5d022aa95d45e6f0e6b5cb80d1894fe089deed5af1a5716083e
MD5 1105d59d6c425ebe7cb61d8d6d0ffe0a
BLAKE2b-256 cbec1b5d705b700e7d617be488a5532ce704df9c6ecb4199cbf3ef89f2dce81b

See more details on using hashes here.

File details

Details for the file sewer-0.0.2-py2-none-any.whl.

File metadata

File hashes

Hashes for sewer-0.0.2-py2-none-any.whl
Algorithm Hash digest
SHA256 49c3abba89b341fae759f3a0bce01d5597d00866bd26a823001d35ddf8e86984
MD5 d9a73b74b0a73fad929a2b31481d78d6
BLAKE2b-256 f3b5b7c31ab6a5d2e2c5899f69a40c4357a82462a79dcb9aad075ab635beb157

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page