ACMEOW Documentation¶
ACMEOW is a production-grade Python library for automated SSL/TLS certificate management using the ACME protocol (RFC 8555).
Note
This library requires Python 3.10 or later.
Features¶
Full ACME Protocol Support: Complete RFC 8555 implementation including account management, certificate issuance, and revocation
Multiple Challenge Types: DNS-01, HTTP-01, and TLS-ALPN-01 challenge validation
Flexible Handlers: Built-in handlers and callback-based custom handlers
Thread-Safe: Safe for use in multi-threaded applications
Type Hints: Full type annotations for better IDE support
Quick Start¶
Installation¶
pip install acmeow
Basic Usage¶
from pathlib import Path
from acmeow import AcmeClient, Identifier, KeyType, CallbackDnsHandler
# Create client
client = AcmeClient(
server_url="https://acme-v02.api.letsencrypt.org/directory",
email="admin@example.com",
storage_path=Path("./acme_data"),
)
# Create account
client.create_account()
# Create order
order = client.create_order([Identifier.dns("example.com")])
# Define DNS record handlers
def create_record(domain, name, value):
# Create TXT record using your DNS provider API
pass
def delete_record(domain, name):
# Delete TXT record
pass
# Complete challenges
handler = CallbackDnsHandler(create_record, delete_record)
client.complete_challenges(handler)
# Finalize and get certificate
client.finalize_order(KeyType.EC256)
cert_pem, key_pem = client.get_certificate()
Table of Contents¶
API Reference
Project