Skip to main content

Async ACME Library

publish coverage codeql pypi license

🚀 Project Overview

The Async ACME Client Library is a comprehensive asynchronous Python implementation for managing SSL/TLS certificates using the ACME(Automated Certificate Management Environment) protocol. Designed for simplicity and flexibility, this library enables programmatic certificate issuance, renewal, and management with modern Python async capabilities. It is most convenient to use for cloud providers.

Key Features

  • 🔒 Asynchronous ACME protocol implementation
  • 🌐 Support for Let's Encrypt and other ACME-compatible certificate authorities
  • 🔑 RSA key management and cryptographic operations
  • 🧩 Modular and extensible design
  • 🚀 Modern Python async/await syntax support

Installation

pip install acme-client-lib

Quick Start Example

For example use file: example.py

Core Components

1. RSA Key Management (_rsa_utils.py)

  • Generate and manage RSA keys
  • Create Certificate Signing Requests (CSRs)
  • Handle cryptographic operations

2. ACME Client (_client.py)

  • Create ACME accounts
  • Manage certificate orders
  • Handle challenge verification
  • Download certificate chains
  • Revoke certificate

3. Data Schemas (_schemas.py)

  • Pydantic models for ACME protocol entities
  • Structured representation of challenges, orders, and errors

Supported Workflows

  1. Account Registration
  2. Certificate Order Initialization
  3. Challenge Verification
  4. Certificate Finalization
  5. Certificate Chain Download
  6. Certificate Revocation

Configuration Options

  • ACME Server URL
  • Account Email
  • Domain Names
  • Key Size
  • Challenge Handling Strategy

System Requirements

  • Python 3.9+
  • cryptography library
  • josepy library
  • Async runtime support

Development Tools

  • Poetry for dependency management
  • Black for code formatting
  • Ruff for linting
  • MyPy for type checking
  • Pytest for testing
  • Pre-commit hooks

Security Considerations

  • Uses industry-standard cryptographic primitives
  • Supports configurable key sizes
  • Implements ACME protocol best practices
  • Secure async HTTP interactions

Limitations

  • Requires manual DNS challenge resolution
  • Designed for async environments

Testing

Comprehensive test suite covering:

  • Directory retrieval
  • Nonce generation
  • Account creation
  • Order management
  • Challenge verification
  • Certificate retrieval

License

MIT License - Open-source, commercial use allowed

Contributing

Contributions are welcome! Please review our contribution guidelines and follow our code quality standards.

Future Roadmap

  • Enhanced HTTP-01 challenge automation
  • More flexible certificate management
  • Expanded CA support
  • Automated certificate management
  • DevOps certificate workflows
  • Web service SSL automation
  • Continuous integration certificate provisioning

Helpful Resources

  • Let's Encrypt Documentation
  • ACME Protocol Specification
  • Project Example Scripts

Contact

For issues, support, or contributions, please open a GitHub issue or contact the maintainers.


Note: Always ensure you have the latest version and review the documentation for the most up-to-date information.

Metadata

Release files for acme-client-lib 0.1.1

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

Source distribution (sdist)

Source distribution for acme-client-lib 0.1.1
File Size Uploaded
acme_client_lib-0.1.1.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for acme-client-lib 0.1.1
File Interpreter ABI Platform
acme_client_lib-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 14.7 kB

Release files / acme_client_lib-0.1.1.tar.gz

Download URL acme_client_lib-0.1.1.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3aaab266b149238ac47bd528f99cd6e3a5d1683da737b59dcd79f34de7e6d1d5
BLAKE2b-256 checksum
How to use checksums
11d1036fd26901b38e60f994e319cf413a82167459b4fcdf9b89acb246e14b3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.12.1 Linux/6.8.0-1017-azure

Release files / acme_client_lib-0.1.1-py3-none-any.whl

Download URL acme_client_lib-0.1.1-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ccc973dbbf0a9ccfd1c7d834cdee691319c1d3926b415e0c52e2271df5886ac
BLAKE2b-256 checksum
How to use checksums
335d39e6511b33e21f44762a9afff26d4591f9bfd1dec860512eec2c175a1d9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.12.1 Linux/6.8.0-1017-azure

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

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