Release Date: 2026-06-01
Bugfix release (kind of).
foundata.acmesh.run- Handle deprecatedfullcain_filealias gracefully. The deprecatedrun_acmesh_certs[]['install']['fullcain_file']typo alias now emits a timed warning instead of failing immediately, then normalizes the value tofullchain_fileand removes the deprecated key before later tasks run. Please update your playbooks accordingly by replacing all occurrences offullcain_filewithfullchain_file.
Release Date: 2026-05-21
Feature and bugfix release.
foundata.acmesh.run- Added support for thedns-persist-01ACME challenge type (#17). This challenge uses a static TXT record at_validation-persist.<domain>bound to the ACME account key, eliminating the need for DNS API credentials during certificate issuance and renewal. New challenge sub-options:dns_persist_wildcard,dns_persist_ca_name, anddns_persist_days. New parameters:run_acmesh_cfg_account_keys, andrun_acmesh_dns_persist_pause. The ACME registration metadata (account.json) may get automatically regenerated byacme.sh --register-accountusing the seeded account key (per RFC 8555 7.3.1, the CA identifies accounts by their public key) if needed. Please note that you might need to setrun_acmesh_git_version: "master"since acme.sh 3.1.4 is not yet released as of 2026-05-21 and earlier versions lack support fordns-persist-01.foundata.acmesh.run- The role now automatically registers ACME accounts, generates dns-persist TXT record values viaacme.sh --make-dns-persist-value, and displays human-readable instructions for DNS record publication when certificates use thedns_persistchallenge type.
foundata.acmesh.run- Addedrun_acmesh_cfg_ca_bundleandrun_acmesh_cfg_ca_pathparameters to specify a custom CA certificate bundle or directory for all acme.sh HTTPS requests (issue, register-account). This is needed when the ACME server uses a non-standard CA. These are global acme.sh settings, matching the upstream behavior whereCA_BUNDLE/CA_PATHare persisted toaccount.conf. Until now, one had to userun_acmesh_certs['extra_flags']for this. As these settings are quite common, role level variables make sense.foundata.acmesh.run- Addedrun_acmesh_git_versionparameter to override the automatically detected acme.sh version with a specific Git ref (tag, branch, or commit hash). Setting it tomasterinstalls the latest code, which is usually safe as acme.sh aims for a production-readymasterbranch by default. This may be needed for features not yet included in a tagged release (example as of 2026-05-19:--make-dns-persist-valuefor dns-persist-01 support which is in master but not in the latest tagged version 3.1.3) or when you want to pin a specific version for reproducibility.
foundata.acmesh.run- Renamed therun_acmesh_certs[]['install']\sub-keyfullcain_filetofullchain_file(typo fix, "cain" instead of "chain"). Update your playbooks and inventory accordingly by replacing all occurrences offullcain_filewithfullchain_file.
Release Date: 2026-05-12
Bugfix release.
foundata.acmesh.run- Fixedacmesh-renewal.timernot being started after installation. The systemd timer was only enabled (scheduled for future boots) but never started, so automatic certificate renewal would not begin until the next reboot. The timer is now started immediately when enabled and stopped when disabled or uninstalled (#16).
Release Date: 2026-05-11
Maintenance release.
- Added Fedora 44 as supported platform for all collection roles and Molecule test scenarios.
- Added Ubuntu 26.04 LTS (Resolute Raccoon) as supported platform for all collection roles and Molecule test scenarios.
- Removed Fedora 42 support (End of Life, EOL) from collection roles and Molecule scenarios. The collection may still work on Fedora 42, but no testing or bugfixes will be provided. A warning will be displayed when used on unsupported platforms.
Release Date: 2026-05-10
Bugfix release.
- Added Molecule tests for webroot (HTTP-01) challenge certificate issuance using pebble (Let's Encrypt test ACME server). The tests run unconditionally on all platforms (no external credentials required) with a switchable web server backend (nginx or apache, controlled via the
TEST_ACMESH_WEBROOT_BACKENDenvironment variable, defaulting to nginx).
foundata.acmesh.run- Thewebrootchallenge parameter was missing from the role's argument spec (meta/argument_specs.yml), causing validation failures when usingtype: webrootinrun_acmesh_certs[].domains[].challenge. Thedomain_aliasdescription was also corrected to accurately describe DNS alias mode (see #15).
Release Date: 2026-02-21
Feature and bugfix release.
foundata.acmesh.run- Added optional per-certificateenvironmentkey inrun_acmesh_certsitems. Setting environment variables per certificate can improve readability, as it clearly shows which certificate or domain is using which credentials in setups that involve multiple DNS provider credentials. Per-certificate environment variables are merged with the globalrun_acmesh_environment, with per-certificate values taking precedence on key conflicts. Please note that acme.sh DNS API plugins usually persist credentials per provider (not per certificate) inaccount.conf, so using different credentials for the same DNS provider across certificates will result in only the last-written set being saved for automatic renewals.foundata.acmesh.run- The uninstall tasks now checkrun_acmesh_groupmembership and delete the supplementary group if no other members remain.
foundata.acmesh.run- Fixed handler failure during uninstall by skipping the ownership and permissions handler whenrun_acmesh_cfg_homeno longer exists.foundata.acmesh.run- Fixed incorrect group ownership on renewed certificate files by setting the SGID bit (2750) on certificate directories. Without it, files created by acme.sh during automatic renewal via the systemd timer were owned by the service user's primary group instead ofrun_acmesh_group, which could not be corrected without an additional Ansible run.
Release Date: 2026-02-20
Feature release.
- Molecule: Added openSUSE Leap 16.0 as a test target platform.
foundata.acmesh.run- Addedrun_acmesh_git_fallback_version_branchparameter to configure the Git branch used as a fallback when no version tag can be determined from the remote repository.foundata.acmesh.run- Addedrun_acmesh_git_urlparameter to override the Git repository URL used for cloning acme.sh and querying upstream version tags. This allows pointing the role at an internal Git mirror, making it suitable for air-gapped environments and avoiding GitHub API rate limits.foundata.acmesh.run- Replaced the GitHub API-based version detection withgit ls-remote --tags --refs. This approach works with any Git remote and no longer requires access to the GitHub API.foundata.acmesh.run: Added openSUSE Leap 16.0 as a supported platform.
- Molecule: Removed openSUSE Leap 15.6 as a test target platform.
foundata.acmesh.run: Removed openSUSE Leap 15.6 from the list of supported platforms. The role will continue to work on openSUSE Leap 15.6 but will display a warning. To avoid this, either remain on or pin the previous version of the collection. Bugs and issues related to openSUSE Leap 15.6 will no longer be fixed.
Release Date: 2025-12-26
Maintenance release.
- Added Fedora 43 as supported platform for all collection roles and Molecule test scenarios
- Removed Fedora 41 support (End of Life, EOL) from collection roles and Molecule scenarios. The collection may still work on Fedora 41, but no testing or bugfixes will be provided. A warning will be displayed when used on unsupported platforms.
Release Date: 2025-12-03
Bugfix release.
- Files created by
Cert | Default | Install certificate(s)/acme.sh --install-certwere ignored by the handler to set ownership and permissions of files and directories (restrict to service user and/or group).
Release Date: 2025-11-02
Maintenance release.
- Added a new fact
__run_acmesh_is_installedto indicate whether acme.sh is installed as boolean. - Molecule: Added Debian 13 (Trixie) as a test target platform.
foundata.acmesh.run- Added Molecule verification tests to ensure hook configuration updates work correctly and validate the proper base64 encoding of hook commands in certificate config files.foundata.acmesh.run- Added automatic hook and reload command configuration updates for existing certificates. The role now detects when hook configurations (pre_hook, post_hook, renew_hook, reloadcmd) have changed in Ansible variables and automatically updates the corresponding base64-encoded values in acme.sh certificate config files without requiring certificate re-issuance. This is a workaround for upstream issue acmesh-official/acme.sh#3936.foundata.acmesh.run: Added Debian 13 (Trixie) as a supported platform.
- Molecule: Removed Debian 11 (Bullseye) as a test target platform.
foundata.acmesh.run: Removed Debian 11 (Bullseye) from the list of supported platforms. The role will continue to work on Debian 11 but will display a warning. To avoid this, either remain on or pin the previous version of the collection. Bugs and issues related to Debian 11 will no longer be fixed.
- Fixed broken conditionals. Ansible Core 2.19 / Ansible 12 introduced stricter behavior, e.g. non-boolean expressions in
when:now raise errors by default.
Release Date: 2025-05-05
Mostly a maintenance release, shipping official Fedora 42 support.
- Added Fedora 42 as supported platform for all collection roles and Molecule test scenarios
- Exclude
extensions/moleculefrom build artifacts. This reduces the size of the resulting artifact. The Ansible Molecule directory is intended for developer testing and not needed in production artifacts, where environment-specific testing can be performed independently. - Improved inline script quoting. Ensure safer handling of input by adding
ansible.builtin.quotewhere appropriate. Even if inputs are user-controlled or derived from internal variables, it's better to be safe and prevent potential issues with shell parsing.
- Removed Fedora 40 support (End of Life, EOL) from collection roles and Molecule scenarios. The collection may still work on Fedora 40, but no testing or bugfixes will be provided. A warning will be displayed when used on unsupported platforms.
Release Date: 2025-04-17
First public release, providing all functionality and files