Skip to content

acme: Don't restrict challenge types#1522

Merged
mdecimus merged 1 commit into
stalwartlabs:mainfrom
aszlig:acme-challenge-extensibility
May 25, 2025
Merged

acme: Don't restrict challenge types#1522
mdecimus merged 1 commit into
stalwartlabs:mainfrom
aszlig:acme-challenge-extensibility

Conversation

@aszlig
Copy link
Copy Markdown
Contributor

@aszlig aszlig commented May 19, 2025

When testing my Stalwart deployment with Pebble1, I got the following ACME error:

ACME error (acme.error) {
  reason = "unknown variant `dns-account-01`, expected one of `http-01`, `dns-01`, `tls-alpn-01` at line 15 column 33",
  details = JSON deserialization failed
}

In RFC 8555 section 82, the validation challenges are meant to be extensible:

The identifier validation challenges described in this section all
relate to validation of domain names. If ACME is extended in the
future to support other types of identifiers, there will need to be
new challenge types, and they will need to specify which types of
identifier they apply to.

The mentioned error refers to the following draft:

https://datatracker.ietf.org/doc/html/draft-ietf-acme-dns-account-label-01

Pebble already implemented3 this and while it's IMHO too early to already support this in Stalwart, we should at least make sure that we don't break existing deployments in case ACME CAs one day add more challange types like the above.

When testing my Stalwart deployment with Pebble[1], I got the following
ACME error:

  ACME error (acme.error) {
    reason = "unknown variant `dns-account-01`, expected one of `http-01`, `dns-01`, `tls-alpn-01` at line 15 column 33",
    details = JSON deserialization failed
  }

In RFC 8555 section 8[2], the validation challenges are meant to be
extensible:

> The identifier validation challenges described in this section all
> relate to validation of domain names. If ACME is extended in the
> future to support other types of identifiers, there will need to be
> new challenge types, and they will need to specify which types of
> identifier they apply to.

The mentioned error refers to the following draft:

https://datatracker.ietf.org/doc/html/draft-ietf-acme-dns-account-label-01

Pebble already implemented[3] this and while it's IMHO too early to
already support this in Stalwart, we should at least make sure that we
don't break existing deployments in case ACME CAs one day add more
challange types like the above.

[1]: https://github.com/letsencrypt/pebble
[2]: https://datatracker.ietf.org/doc/html/rfc8555#section-8
[3]: letsencrypt/pebble#435

Signed-off-by: aszlig <aszlig@nix.build>
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented May 19, 2025

CLA assistant check
All committers have signed the CLA.

@mdecimus mdecimus merged commit 1b1f85a into stalwartlabs:main May 25, 2025
1 check passed
@mdecimus
Copy link
Copy Markdown
Member

Thanks, merged.

@aszlig aszlig deleted the acme-challenge-extensibility branch May 25, 2025 10:57
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