Repository navigation
Conversation
Pin the smallstep/certificates#2826 and smallstep/linkedca#170 branches until they are released. The newer linkedca requires go 1.26.7.
Accept dns-persist-01 in --challenge and --remove-challenge, and add the --issuer-domain-name, --remove-issuer-domain-name and --account-hash-prefix flags that configure it in step ca provisioner add and update.
|
|
This was referenced Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Name of feature:
step ca provisioner add/updatesupport for the ACMEdns-persist-01challenge(draft-ietf-acme-dns-persist-02).
--challengeacceptsdns-persist-01, and so does--remove-challengeonupdate.issuerDomainNamesandaccountHashPrefix:--issuer-domain-name(repeatable): the issuer names that_validation-persistTXT records must name.--remove-issuer-domain-name(repeatable,updateonly).--account-hash-prefix: the URL prefix of the hashed account URIs.--challengehelp text documents dns-persist-01, and the help for both commands has an example.The CLI doesn't validate these values itself. step-ca validates them when it loads the provisioner, for both
ca.json and remote management.
Pain or issue this feature alleviates:
The challenge can't be configured from the CLI today. Worse,
step ca provisioner updateconverts a ca.jsonprovisioner to linkedca and back, which silently removes
dns-persist-01and its options. With step 0.31.0, anunrelated change such as
step ca provisioner update acme --x509-max-dur 24hdoes this. If dns-persist-01 was theonly challenge, the provisioner falls back to the default challenges.
Is there documentation on how to use this feature? If so, where?
The command help, as described above.
In what environments or workflows is this feature explicitly NOT supported (if any)?
Older step binaries still remove these settings when they update a provisioner, so users need this version.
Supporting links/other PRs/issues:
go.modpins both branches as pseudo-versions; they must be bumped to releases before merging. The newer linkedcarequires
go 1.26.7, so thegodirective moves up from1.26.0. The certificates pseudo-version comes fromcertificates
master, which also brings in that repo's newer indirect dependencies.Testing
createACMEDetails, andupdateACMEDetails(adding and removing names, and replacing or clearing the prefix).
go test ./...andgolangci-lintwith the shared config: clean.addwith dns-persist-01 writes the challenge and both properties.update --x509-max-dur 48hkeeps them.update --issuer-domain-name … --remove-issuer-domain-name … --account-hash-prefix …changes them.add --challenge dns-persist-01without the options fails withfailed validating dns-persist-01 options: issuerDomainNames cannot be empty.dns-persist-01,issuerDomainNamesandaccountHashPrefixon the same unrelated update.