Skip to main content

Build Status

Crypto Domain Manager

Automate all your cryptographic needs!

Goals

  • Zero downtime
  • Automatic certificate renewal
  • Spam protection
  • Updated DNS records

Configure once and always stay up to date.

Use cases

  • Renew letsencrypt certicates
  • Derive all kinds of data from the signature
  • Ensure everything is secure

External Service APIs

Linux Services

  • DKIM signatures:
    • rspamd
  • Reload systemd services:
    • apache2
    • postfix
    • dovecot
    • rspamd
    • traefik in Docker

Managed DNS Records

No downtime strategy

Updating keys, certifcates and other needs 3 steps to prevent gaps in availabillity:

  1. Prepare: Create certificates, keys etc. and publish corresponding records to DNS.
  2. Rollover: Apply new certificates and keys, because now negative cache TTL on DNS is reached.
  3. Cleanup: Delete all no more needed stuff from disk and DNS.

Needed Plugins and Dependencies

  • dnsuptools: to interface with DNS API -- updating DNS entries
  • dehydrated: to get new certificate (included with cryptdomainmgr)
  • rspamd: to create (and use) DKIM keys

Installation

These libraries are needed for pycurl used by dnsuptools for automatic ip retrieving:

apt install -y libcurl4-openssl-dev libssl-dev

This comman is used by dehydrated to communicate with letsencrypt for certificate renewal:

apt install -y curl

For DKIM we need rspamd:

apt install -y lsb-release wget # optional
CODENAME=`lsb_release -c -s`
wget -O- https://rspamd.com/apt-stable/gpg.key | apt-key add -
echo "deb [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" > /etc/apt/sources.list.d/rspamd.list
echo "deb-src [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" >> /etc/apt/sources.list.d/rspamd.list
apt update
apt install -y rspamd

Now install the cryptdomainmgr. This pulls all need dependencies.

python2 -m pip install cryptdomainmgr

Feel free to try python3, but inwx client doesn't support it.

python3 -m pip install cryptdomainmgr

Documentation

We need help here!

For now please look at:

hints:

  • Multiple Configfiles with priority allowed
  • Specify content of config file content as argument

Next goals

  • improve documentation
  • docker support - partly done, ToDo: label handling needed, daemon mode without external shell stript needed
  • website
  • automated tests - partly done
  • nsupdate for DNS updates

Long term goals:

  • ARC key renewal
  • WPIA integration
  • DNSSEC key renewal
  • TXT record (may collide with SPF and other TXT based records)
  • multi server support for one domain: TLSA delete by timeout
  • constrain minimum renewal/phase time interval
  • validations - ensure signatures are used correctly
  • run as service
  • PowerDNS support

Contributions

If you like the project feel free to give me a star. Please let us know if you use this project.

All kind of contributions are welcome.

Metadata

Release files for cryptdomainmgr 0.2.6.post15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cryptdomainmgr 0.2.6.post15
File Size Uploaded Provenance Actions
cryptdomainmgr-0.2.6.post15.tar.gz 73.2 kB Without provenance Details for cryptdomainmgr-0.2.6.post15.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for cryptdomainmgr 0.2.6.post15
File Interpreter ABI Platform Actions
cryptdomainmgr-0.2.6.post15-py3-none-any.whl Python 3 none any Details for cryptdomainmgr-0.2.6.post15-py3-none-any.whl

Total release size: 150.5 kB

Release files / cryptdomainmgr-0.2.6.post15.tar.gz

Download URL cryptdomainmgr-0.2.6.post15.tar.gz
Size 73.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a21cb94db133dcc5ef1e7cdd4e3db697c50c2c3d25373d44813c98991bdd8e61
BLAKE2b-256 checksum
How to use checksums
953303dc5a0c82bab623a996ee4fe7fa71eee79a642dd68ca835959bb4eaf32b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / cryptdomainmgr-0.2.6.post15-py3-none-any.whl

Download URL cryptdomainmgr-0.2.6.post15-py3-none-any.whl
Size 77.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fb1603aac843f8772c65fd40e2df9f94c58281ef5028591b58af10649c51d80f
BLAKE2b-256 checksum
How to use checksums
713b7e2a954349ecb02a016c2ccd76a60697bc0353674c38ab1f51438c1fc288
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for cryptdomainmgr 0.2.6.post15

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.6.post15 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page