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.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| acme_client_lib-0.1.1.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|