security/acme-client: DNS Sleep time reset to 0
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 1.2k
- Forks
- 863
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 10
Description
Important notices
Before you add a new report, we ask you kindly to acknowledge the following:
- [x ] I have read the contributing guide lines at https://github.com/opnsense/plugins/blob/master/CONTRIBUTING.md
- [ x] I have searched the existing issues, open and closed, and I'm convinced that mine is new.
- [ x] The title contains the plugin to which this issue belongs
Describe the bug
Using ACME Client (with step-ca,powerdns) after a failed attempt, I set DNS sleep time to 60, but then it gets set back to 0. creating another failed attempt. (also, it leaves stale TXT files in DNS). See attached file for more information.
To Reproduce
Steps to reproduce the behavior:
- Go to Services > ACME Client > Challenge Types > Add
- Enter
Challenge Type: DNS-01
DNS Service PowerDNS.com
DNS Sleep Time 0
URL: PowerDNS Server URL
Server ID: localhost
Token: PowerDNS API Token
Save - Go to ACME Client > Certificates > Add
...
ACME Account step-ca
Challenge Type Power DNS
...
SAVE - Issue or renew Certificate
It fails, because apparently with DNS Sleep Time set to 0, it goes to public DNS servers? (That's a separate issue, I should be able to specify the DNS servers it uses). - After it fails, but before the timeout, go back to Challenge Types, Edit, change DNS Sleep Time to 60, then try to renew again, or delete and recreate the entry.
- Let it fail, go back to Challenge Types, and Sleep Time is set back to 0
- There also seems to be a timing issue where if I correct everything, make a proper request, but the timeout for the original request hasn't been hit yet, I'll get a certificate issued, according to step-ca, but it ends up showing as failed in the UI
- Also, it is leaving a ton of TXT entries in my DNS for the failed attempts
- See error
Expected behavior
The DNS Sleep Time should stay at the value set
A failed attempt shouldn't overwrite the later successful attempt, or it shouldn't let you make a second attempt until the first is completely timed out.
It should always clean up TXT entries
Screenshots
If applicable, add screenshots to help explain your problem.
Relevant log files
see attached file from my Lab AI
Additional context
see attached
Environment
Version 26.7.3_11
Architecture amd64
os-acme-client (installed) 4.16_1 821KiB 3 OPNsense ACME Client
step-ca: Smallstep CA/0.28.4 (linux/amd64), release date 2025-07-14, image smallstep/step-ca:0.28.4
PowerDNS: PowerDNS Authoritative Server 4.9.17, image powerdns/pdns-auth-49:latest, backend gmysql
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at Services > ACME Client > Challenge Types and reproduce the DNS Sleep Time reset using the PowerDNS and step-ca configuration described. Review the attached log file and trace a failed renewal followed by a second attempt. Done means the configured sleep value persists, overlapping attempts are handled consistently, and failed attempts clean up their TXT entries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- backend, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100