Skip to content

Add the dns-persist-01 ACME challenge type - #170

Merged
joshdrake merged 2 commits into
mainfrom
feat/add-dns-persist-01
Oct 16, 2026
Merged

joshdrake merged 2 commits into
mainfrom
feat/add-dns-persist-01

Conversation

@joshdrake

@joshdrake joshdrake commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Name of feature:

ACME dns-persist-01 challenge type
(draft-ietf-acme-dns-persist-02).

Changes to ACMEProvisioner in spec/linkedca/provisioners.proto:

  • A new ChallengeType value, DNS_PERSIST_01 = 5.
  • string account_hash_prefix = 9: the URL prefix of the hashed account URIs that clients publish in their
    _validation-persist TXT records.
  • repeated string issuer_domain_names = 10: the issuer domain names those records may name.

These match the accountHashPrefix and issuerDomainNames properties of the step-ca ACME provisioner.

A separate commit bumps the indirect golang.org/x/net dependency from v0.58.0 to v0.61.0. That fixes GO-2026-6603,
GO-2026-6611, GO-2026-6612 and GO-2026-6617, which were failing govulncheck on main as well. It also pulls in newer
indirect golang.org/x modules.

provisioners.pb.go was regenerated with make generate. Its header records a newer local protoc (v7.36.1).
The other generated files were left unchanged, so the diff only covers this change.

Pain or issue this feature alleviates:

step-ca converts provisioners to and from linkedca in two places:

  • Remote provisioner management.
  • step ca provisioner add/update, which convert ca.json provisioners to linkedca and back.

Without this change, both conversions silently drop dns-persist-01 and its options. If dns-persist-01 was the
only challenge configured, the provisioner falls back to the default http-01, dns-01 and tls-alpn-01 challenges.

Is there documentation on how to use this feature? If so, where?

Not yet. The step-ca documentation will cover it with the step-ca change.

Supporting links/other PRs/issues:

Add DNS_PERSIST_01 to ACMEProvisioner.ChallengeType, and the
account_hash_prefix and issuer_domain_names fields that configure it.
These map to the accountHashPrefix and issuerDomainNames properties
of the step-ca ACME provisioner, as defined in
draft-ietf-acme-dns-persist-02.
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

maraino
maraino previously approved these changes Oct 15, 2026

@maraino maraino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Fixes GO-2026-6603, GO-2026-6611, GO-2026-6612 and GO-2026-6617,
which govulncheck reports in golang.org/x/net v0.58.0.
@joshdrake
joshdrake merged commit 847f5e6 into main Oct 16, 2026
11 of 12 checks passed
@joshdrake
joshdrake deleted the feat/add-dns-persist-01 branch October 16, 2026 00:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants