Commit Graph
2425 Commits
Author SHA1 Message Date
neil 81100db2f3 fix https://github.com/acmesh-official/acme.sh/issues/6498 2026-07-01 21:59:41 +08:00
Jonas Zürcherandneil ae8ef74c4b fix(dns_infomaniak): correctly detect API errors (#7048)
The add/rm success check never rejected anything: for any non-empty API
response it always reported "Record added"/"Record deleted" and returned
0, so the _err branch was dead code. A valid key looked fine only because
the API call genuinely created the record; an invalid key returning
{"result":"error"} produced the same "Record added" output even though
nothing was created.

Root cause, in:
  if [ -n "$response" ]; then
    if [ ! "$(echo "$response" | _contains '"result":"success"')" ]; then

  - _contains() ignores stdin (it reads only $1 and $2), so the piped
    "$response" was discarded.
  - The pattern '"result":"success"' was passed as $1 (the haystack),
    leaving $2 (the needle) empty, so it ran:
      echo '"result":"success"' | grep -- "" >/dev/null 2>&1
    grep with an empty pattern always matches.
  - That grep output is redirected to /dev/null, so the command
    substitution always captured "", making [ ! "" ] always true.

Fix: call _contains "$response" '"result":"success"' directly and branch
on its exit code, so error responses now correctly fail (return 1).

Co-authored-by: neil <github@neilpang.com>
2026-07-01 21:05:07 +08:00
hostup 0d53d29f7e Update dns_hostup.sh to v2 API (#7014)
* Update dns_hostup.sh

Update to v2 api support; developer.hostup.se

* Update dns_hostup.sh
2026-07-01 20:44:21 +08:00
Alexander Stehlik 2998106bd1 fix(dns_desec): fix rate limit and compatibility issues (#7027)
* fix(dns_desec): sleep after DNS record change to prevent rate limit issues

Also: make sure the subname is lowercase to fix tests where
the acmetestXyzRandomName subdomain is used.

* fix: make regexes POSIX-compatible (for OpenBSD)

* chore: use _sleep instead of sleep to follow acme.sh standards
2026-07-01 18:54:24 +08:00
Jeroen MoorsandJeroen Moors b3579ff18d Implement support for DNS Level27 (#7043)
* Add Level27 DNS API support

Implements dns_level27_add and dns_level27_rm for the Level27 (level27.eu) DNS API, used for ACME dns-01 challenges.

- Authenticates with a persistent API key via the Authorization header.
- Resolves the registered zone with domains?filter and exact fullname match (supports DNS alias mode).
- Removes the challenge record by its exact TXT value, leaving other records intact (wildcard-safe).
- Optional LEVEL27_API override for non-default/staging endpoints.

* A little better documentation

---------

Co-authored-by: Jeroen Moors <jeroen.moors@level27.be>
2026-06-29 01:27:41 +08:00
regisvidal-bitmapz 365d2d10f3 Fix dns_namesilo_rm failing to remove TXT record (#6969)
* Fixes #6907
2026-06-19 14:24:20 +02:00
Bill d98fa53f62 Updated AWS Route53 service endpoint to the dual-stack endpoint (#6994)
* Update to dual-stack service endpoint
2026-06-05 22:06:49 +02:00
aitor422 9b597b3f1b Add CDMON Api (#6984)
* Added CDMon DNS API
2026-06-05 22:02:14 +02:00
Adrian Fedoreanu a2f046306e dns_1984hosting: cleanup, memoize zone id (#6978)
* dns_1984hosting: cleanup, memoize zone id, optional OTP
2026-06-05 19:28:08 +02:00
neil 5713c1d39d remove dns_hetzner.sh
https://github.com/acmesh-official/acme.sh/issues/6990#issuecomment-4576551997
2026-05-30 11:48:06 +02:00
Jakob Næss 206f4494ac Add Poweradmin DNS API plugin (dns_poweradmin) (#6943)
* Add Poweradmin DNS API plugin (dns_poweradmin)
2026-05-24 22:34:56 +02:00
Markus Ebner ce07759ced [dnsapi] add IP-Projects dns hook (#6959) 2026-05-24 22:24:00 +02:00
Tom Sommer 010bd1111a Improve Simply.com API (#6933)
Improve Simply.com API (#6933)
2026-05-24 22:20:40 +02:00
nsantorelliandNicolas Santorelli 96f87844cd Add EuroDNS DNS API plugin (dns_eurodns) (#6903)
Co-authored-by: Nicolas Santorelli <nsantorelli@eurodns.com>
2026-05-02 10:56:13 +02:00
firestormisp 10e7e458af Add dns_firestorm.sh plugin for Firestorm.ch DNS API (#6829)
Firestorm.ch is a Swiss hosting provider with managed DNS (PowerDNS).
This plugin allows customers to automate Let's Encrypt DNS-01 challenges
via the Firestorm DNS API.
2026-05-02 10:56:13 +02:00
Adam Bodnar fd6ff7b173 Add dns_cpanel_uapi DNS API plugin (#6878)
* Add dns_cpanel_uapi.sh
2026-04-26 14:29:40 +02:00
GNDevProd 454cec6e43 Add Gname.com dnsapi support (#6808)
* add gname dns acme.sh
2026-04-14 20:57:22 +08:00
wangzhizhou afba1455b8 add dnsapi for baidu cloud dns (#6844) 2026-04-14 20:44:30 +08:00
Jordan RussellandJordan Russell 618735d11e [dnsapi] add SiteHost DNS API hook (#6891)
Co-authored-by: Jordan Russell <jordan.russell@sitehost.co.nz>
2026-04-08 22:07:30 +08:00
Lorenz Stechauner 08b2186afe dns_world4you: Adapt to latest record id changes (#6897) 2026-04-08 22:00:42 +08:00
Stefan Bottelier 3509f6404f Add bHosted.nl DNS API (#6864)
Add bHosted.nl DNS API (#6864)
2026-04-08 21:59:09 +08:00
Tomáš Pavlič 3c8c735362 [dnsapi] add subreg.cz dns hook (#6848)
* Add DNS hook for subreg.cz
2026-03-22 11:40:44 +08:00
heximcz c397bd6573 Add BEST-HOSTING DNS API (#6859)
* Add BEST-HOSTING DNS API
2026-03-22 11:36:29 +08:00
CZECHIA-COM 8aea731bd4 Add dns_czechia DNS API plugin (#6764)
* Create dns_czechia.sh

This PR adds a DNS API plugin for CZECHIA.COM / RegZone (ZONER a.s.).
2026-03-16 20:17:18 +08:00
Ludwig 03860a4978 dnsapi/dns_me: ignore "already exists" error for multi-domain support (#6830) 2026-03-08 18:37:29 +08:00
Travis f0146bd90e shfmt edit 2026-03-03 05:31:51 -08:00
Tra5is 20722ea030 Merge branch 'dev' into add_technitium_expiry_ttl 2026-03-03 04:59:54 -08:00
Travis 70f9e255d3 Add Expiry TTL option for Technitium DNS API 2026-02-18 09:29:47 -08:00
alexandergott-afk 83424e7ba4 Add the information from my last accepted pull that the TSIG key is optional. 2026-02-12 15:32:53 +01:00
alexandergott-afk 5bc44caf50 Allow more than one DNS server for HA environments 2026-02-12 15:27:23 +01:00
alexandergott-afk 47412d1822 Update dns_nsupdate.sh 2026-02-12 15:24:45 +01:00
alexandergott-afk 34052e56d7 too many spaces removed 2026-02-09 10:39:27 +01:00
alexandergott-afk 4807df0c3e Fix Tab 2026-02-09 10:03:26 +01:00
alexandergott-afk ec0dc40ad8 Merge branch 'dev' into master 2026-02-05 10:39:19 +01:00
alexandergott-afk 7236ba2d7c Update dns_nsupdate.sh 2026-02-05 09:20:51 +01:00
JF DAGUIN 274fd53c83 Merge branch 'dev' into dns_infomaniak_API_v2 2026-01-30 23:08:17 +01:00
JF DAGUIN a4595f334e Merge branch 'acmesh-official:master' into dns_infomaniak_API_v2 2026-01-30 23:04:36 +01:00
JF DAGUIN 477277bd2d Rewrite token scope and URL to add one
Updated comments for clarity and formatting.
2026-01-30 23:00:25 +01:00
Kilian Ries 9c245eb37a fix: start zone detection from i=1 per acme.sh convention 2026-01-23 09:20:00 +01:00
Kilian Ries 713251c65b Merge branch 'dev' into add-opusdns-provider 2026-01-22 18:34:04 +01:00
Kilian Ries 2e85e6f9bb Fix zone detection: check for dnssec_status instead of name
The error response also contains 'name' in 'zone_name' field,
causing false positives. Check for 'dnssec_status' which only
exists in valid zone responses.
2026-01-22 18:13:51 +01:00
Kilian Ries 9e584e346d Refactor: Add _opusdns_api helper, simplify code
- Added _opusdns_api() for all API requests
- Added _opusdns_init() for config initialization
- Removed duplicate code in add/rm functions
- Removed dead code (orphaned lines 173-178)
- Script now 158 lines (was 255, originally 379)
2026-01-22 18:13:09 +01:00
Kilian Ries 163eb1acb9 Simplify zone detection with API check
Instead of fetching all zones and matching, iterate through domain
parts and check each against the API until a valid zone is found.
Same approach as GoDaddy DNS plugin.

Example: _acme-challenge.test.example.com
- Try: test.example.com → 404
- Try: example.com → 200 ✓ → zone found!

Script reduced from 304 to 255 lines.
2026-01-22 18:11:01 +01:00
Kilian Ries 25a3ee48df Fix zone pagination parsing
- Fixed jq path: .pagination.has_next_page instead of .has_next_page
- Fixed grep fallback: remove rrsets before extracting zone names
  to avoid matching nested 'name' fields
- Simplified has_next_page detection with simple grep -q
- Added debug output for page zones and has_next status
2026-01-22 17:58:09 +01:00
Kilian Ries 30c9332327 Remove custom DNS propagation check
acme.sh handles DNS propagation checking internally via --dnssleep
and _check_dns_record. Custom propagation checks are unnecessary
and can conflict with acme.sh's own timing.

Removed:
- _opusdns_wait_for_propagation() function
- OPUSDNS_Polling_Interval option
- OPUSDNS_Propagation_Timeout option

Script is now consistent with other DNS API implementations
(Cloudflare, AWS, etc.) which don't have custom propagation checks.
2026-01-22 17:28:41 +01:00
Kilian Ries dc65223da1 Remove all trailing whitespace for shfmt compliance 2026-01-22 17:10:12 +01:00
Kilian Ries 01c93b9bbd Fix shellcheck and shfmt issues
- Add double quotes around variables to prevent globbing
- Fix parameter expansion quoting in ${domain%.${_zone}}
- Remove trailing whitespace for shfmt compliance
2026-01-22 17:04:43 +01:00
Kilian Ries bfd1f9bf6c [CLOUD-31] add acme.sh opusdns provider 2026-01-22 16:43:26 +01:00
Patrick Zbinden 282b048557 Fix dns_cyon to use correct regex 2026-01-14 21:05:32 +01:00
neil bc646d120e Merge pull request #6746 from d-kurz/dev
dns_dynv6: Allow challenge strings that contain "id"
2026-01-10 12:54:47 +01:00