Changelog¶
All notable changes to ACMEOW are documented here.
Version 1.2.0¶
Unreleased
Features¶
DNS-PERSIST-01 challenge (
draft-ietf-acme-dns-persist, experimental): proves domain control with a long-lived TXT record at_validation-persist.<domain>that stays published and authorizes future issuance. AddsChallengeType.DNS_PERSIST,AcmeClient.complete_dns_persist_challenges(), theDnsPersistHandlerinterface withCallbackDnsPersistHandler,ManualDnsPersistHandlerandDnsProviderPersistHandlerimplementations, and the record helpersbuild_record_value(),parse_record_value(),validation_domain_name()andselect_issuer_domain_name(). Verified against Let’s Encrypt staging, which offers the challenge as of July 2026. The draft is not yet an RFC and the record format may still change.Wildcard handling follows RFC 8555 section 7.1.4: the server strips the
*.prefix and sets awildcardflag, so an order covering both a domain and its wildcard produces two authorizations sharing one validation name. These are merged into a single record carryingpolicy=wildcard.Let’s Encrypt omits the
accounturifield the draft specifies on the challenge object; the client falls back to its own account URI.External CSR support:
finalize_order()now accepts an optionalcsrparameter (PEM or DER encoded) so that users can supply a CSR generated outside of ACMEOW. When an external CSR is provided, no private key is generated or stored by the library.get_certificate()returnsNonefor the key PEM in this case.
Changes¶
Challenge.tokenis nowstr | None, since DNS-PERSIST-01 challenges carry no token. Parsing a token-based challenge (dns-01, http-01, tls-alpn-01) that lacks a token now raisesAcmeAuthorizationErrorwith a clear message instead of failing later during key authorization.Challengegains theaccounturiandissuer_domain_namesfields, populated for DNS-PERSIST-01 challenges.
Version 1.0.0¶
Released: 2024
Initial release with full RFC 8555 support.
Features¶
ACME account creation and management
Account update, key rollover, and deactivation
Certificate ordering with DNS-01 and HTTP-01 challenges
Certificate revocation with reason codes
Pluggable DNS provider system
Callback-based challenge handlers
External Account Binding (EAB) support
Full type annotations
Thread-safe nonce management