Asynchronous ACME client
Project description
Async ACME Library
🚀 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
- Account Registration
- Certificate Order Initialization
- Challenge Verification
- Certificate Finalization
- Certificate Chain Download
- Certificate Revocation
Configuration Options
- ACME Server URL
- Account Email
- Domain Names
- Key Size
- Challenge Handling Strategy
System Requirements
- Python 3.9+
cryptographylibraryjosepylibrary- 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
Recommended Use Cases
- 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.
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.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file acme_client_lib-0.1.1.tar.gz.
File metadata
- Download URL: acme_client_lib-0.1.1.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.12.1 Linux/6.8.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3aaab266b149238ac47bd528f99cd6e3a5d1683da737b59dcd79f34de7e6d1d5
|
|
| MD5 |
ca825a85e0ac595a69ab895f83811341
|
|
| BLAKE2b-256 |
11d1036fd26901b38e60f994e319cf413a82167459b4fcdf9b89acb246e14b3b
|
File details
Details for the file acme_client_lib-0.1.1-py3-none-any.whl.
File metadata
- Download URL: acme_client_lib-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.12.1 Linux/6.8.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ccc973dbbf0a9ccfd1c7d834cdee691319c1d3926b415e0c52e2271df5886ac
|
|
| MD5 |
fc9785aa781b7ca0de2465805348feb2
|
|
| BLAKE2b-256 |
335d39e6511b33e21f44762a9afff26d4591f9bfd1dec860512eec2c175a1d9a
|