Refactor the Czechia/Zoner DNS API script to ensure stability and better user experience.
Changes:
- Replaced Bash-specific substitutions with POSIX-compliant code (fixes 'Bad substitution' errors on dash/sh).
- Improved JSON payload construction to be more robust across different shell environments.
- Updated hostname logic to correctly use "@" for apex domains.
- Refined error reporting: API error messages are now captured and displayed in English.
- Cleaned up internal debug messages and aligned them with acme.sh standards.
- Optimized zone picking logic for faster matching in multi-zone setups.
dns_czechia: fix POSIX compatibility for Alpine/BusyBox and cleanup
Replace non-POSIX escape sequences in sed with 'tr' for Alpine/BusyBox compatibility.
Remove unnecessary 'export' from local HTTP header variables.
Fix domain normalization to prevent character stripping in Docker tests.
dns_czechia: remove _lower_case helper and use POSIX-safe lowercasing
Replace internal _lower_case calls with tr-based normalization
to avoid helper dependency and follow acme.sh DNS plugin style.
This PR adds a DNS API plugin for CZECHIA.COM / RegZone (ZONER a.s.).
- Supports ACME DNS-01 TXT record management
- Uses official REST API (Swagger)
- Credentials are stored in account.conf for non-interactive renewals
- IP whitelisting is not required for DNS TXT changes used for SSL automation
(per official REST API terms)
Tested with:
- acme.sh v3.x
- Zones: zoner-test.eu
Fixes the following error when debugging is enabled:
[Sat Feb 21 04:00:22 CET 2026] Here is the curl dump log:
[Sat Feb 21 04:00:22 CET 2026] * URL rejected: Port number was not a decimal number between 0 and 65535
* closing connection #-1
IPv6 addresses in URLs need to be written like this:
http://[2001:43:5::250]