[Acme] Re: Custom hostnames for dns-01 challenges (not just _acme-challenge.example.com)

Jordan Rieger <jordan@webnames.ca> Fri, 06 March 2026 22:52 UTC

Return-Path: <jordan@webnames.ca>
X-Original-To: acme@mail2.ietf.org
Delivered-To: acme@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 1C59EC5E5C98 for <acme@mail2.ietf.org>; Fri, 6 Mar 2026 14:52:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=webnames.ca
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pGt9W6pfhfCf for <acme@mail2.ietf.org>; Fri, 6 Mar 2026 14:52:31 -0800 (PST)
Received: from mx1.webnames.ca (mx1.webnames.ca [209.15.37.54]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 2E9A3C5E5C8E for <acme@ietf.org>; Fri, 6 Mar 2026 14:52:31 -0800 (PST)
X-A531N-DKIM: pass
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=webnames.ca; s=mail; bh=eP4t/X8cc1DiIH38VzA4DkYx/sRZAnDzLBcvMHDlDIQ=; h=Content-Type:Cc:To:From:Thread-Topic:MIME-Version:In-Reply-To:Message-Id: Date:Subject; b=jP8A7Tmj2P8J4qqQMAIz51t1Rqa6WV92uDUexfHHMBB5pmWmIZPGn0iSNynHY El5PzvbzNY+TG9iYw8iz9JRUYPUQUWx0qCftaWYlU6Nd04u7m0SBURIuCVsuynF8USLRhxkJ5ZIGn j2I5tnhWsouIE9mdbYitrmAoTR51Mk/KVD1TTc3f6cE/Xn25pJF2QathX3WI5w6kPYI5buf75tO17 UJSrnF0gj0cco4KEc2Hw4r+UFczsjItZj3NuGraLhp89MDtZ0LYjqU/pw0bJx1ox8jdHCW3S9DlNZ GqCwDcADqmyzxpXrRUeZme9EY6Nspf+5FRjJutapOEwGSXqmgA==
Date: Fri, 06 Mar 2026 14:52:22 -0800
Message-Id: <5c4de1379a045d449beb2fb649722324@officemail.webnames.ca>
In-Reply-To: <CAEmnErfo5zSB1haCXHFiW8eA+rAMmsHckXRDL67cPhmAaZLZwg@mail.gmail.com>
MIME-Version: 1.0
Thread-Topic: [Acme] Custom hostnames for dns-01 challenges (not just _acme-challenge.example.com)
Priority: Normal
Importance: normal
X-MSMail-Priority: normal
X-Priority: 3
Sensitivity: Normal
Thread-Index: Adytu+SibOwdRDTAShi4m2e+gc/dhA==
From: Jordan Rieger <jordan@webnames.ca>
To: Aaron Gable <aaron@letsencrypt.org>
X-Mailer: CommuniGate Pro MAPI Connector 1.52.54.18/1.54.12.28
Content-Type: multipart/related; boundary="----_=_NextPart_11942_00002995.00000491"
X-FE-Attachment-Name: image001.png
X-FEAS-BEC-Info: WlpIGw0aAQkEARIJHAEHBlJSCRoLAAEeDUhZUEhYSFhIWUhZXkguLT4lWFpYWFhYWlhZW1hfSFlQSAIHGgwJBigfDQoGCQUNG0YLCUhZSFpZSAkJGgcGKAQNHBsNBgsaERgcRgcaD0hYSFpIUUhZWEZRRlFGW1xIUEhYSFhIWkhYSFhIWEhaWUgJCRoHBigEDRwbDQYLGhEYHEYHGg9IWEhZW0gJCwUNKAENHA5GBxoPSFg=
Message-ID-Hash: ITDBC56UWZC4MSIMWSUG2AZGNBG4N5YD
X-Message-ID-Hash: ITDBC56UWZC4MSIMWSUG2AZGNBG4N5YD
X-MailFrom: jordan@webnames.ca
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-acme.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "acme@ietf.org" <acme@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Acme] Re: Custom hostnames for dns-01 challenges (not just _acme-challenge.example.com)
List-Id: Automated Certificate Management Environment <acme.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/acme/LirLr7cgKvGf4r0jWilIR5s9pis>
List-Archive: <https://mailarchive.ietf.org/arch/browse/acme>
List-Help: <mailto:acme-request@ietf.org?subject=help>
List-Owner: <mailto:acme-owner@ietf.org>
List-Post: <mailto:acme@ietf.org>
List-Subscribe: <mailto:acme-join@ietf.org>
List-Unsubscribe: <mailto:acme-leave@ietf.org>

That makes sense, Aaron. Thank you for the comprehensive overview.

 

From: Aaron Gable <aaron@letsencrypt.org> 
Sent: March 6, 2026 2:27 PM
To: Jordan Rieger <jordan@webnames.ca>
Cc: acme@ietf.org
Subject: Re: [Acme] Custom hostnames for dns-01 challenges (not just _acme-challenge.example.com)

 

The behavior allowed by the RFC 8555 ACME dns-01 validation method is a strict subset of the behavior allowed by the CA/Browser Forum Baseline Requirements Section 3.2.2.4.7 "DNS Change" validation method. That more general method allows the validation token ("Random Value" in BRs parlance) to be found in a CNAME record, and it allows the DNS record to be placed either on an underscore-prefixed subdomain, or on the domain itself. The CAs you are reselling from implement versions of the "DNS Change" method that are not compatible with the stricter ACME spec.

 

ACME does not aim to allow the full suite of possibilities allowed by all PKIs. It aims to offer an opinionated, easily-automated, obviously-secure collection of validation methods, which are collectively a strict subset of the validation mechanisms allowed by many different PKIs.

 

I believe it is unlikely that ACME will support this form of negotiation in the future. That said, keep an eye on the "dns-persist-01" Internet Draft, which may allow negotiation of the Authorization Domain Name <https://github.com/ietf-wg-acme/draft-ietf-acme-dns-persist/issues/33> .

 

Aaron

 

On Fri, Mar 6, 2026 at 11:07 AM Jordan Rieger <jordan@webnames.ca <mailto:jordan@webnames.ca> > wrote:

Dear ACME experts,

 

We are developing an ACME server to help our customers purchase and manage commercial certificates from us. Such automation is becoming more important now that the maximum validity period has dropped to 200 days and will eventually drop to 47.

 

While we support free Let’s Encrypt certs in various ways, we currently sell commercial certs only through our website. We resell them from https://www.thesslstore.com/, which sources them from the DigiCert and Sectigo CAs. Our ACME server is intended to be a wrapper around the existing reseller API provided by The SSL Store for certificate provisioning, allowing customers to use standard clients like certbot and simple-acme to purchase and reissue certs from us via External Account Binding.

 

The issue I’m encountering is that when DNS validation is chosen, we get “challenges” that must be published via TXT records on the root domain name rather than the _acme-challenge sub-host. E.g. for a cert on example.com <http://example.com> , the CA will require us to publish a TXT token on example.com <http://example.com> , not _acme-challenge.example.com <http://acme-challenge.example.com> . Unfortunately, the ACME dns-01 challenge type seems to have no way for the server to tell the client not to prepend the conventional _acme-challenge label when publishing the TXT record. There is also no way for us to tell the client to publish a CNAME rather than TXT record, as required by Sectigo. This issue prevents us from completing the domain validation (DV) process via our reseller API, because the CA will not find the DNS record they’re expecting.

 

It’s true that in most cases, we will control the domain’s DNS, as we are the registrar of record and offer comprehensive DNS hosting; in that case, we could first validate the client’s conventional _acme-challenge record and then turn around and publish the CA’s requested record in the zone to complete validation on that side. But there will be cases where the customer uses a third-party DNS host, preventing us from publishing the needed record.

 

Do you know of any way around this issue, or any future RFC ACME extension proposal that might help? I’m aware of the http-01 challenge type, but The SSL Store reseller API doesn’t provide consistent support for HTTP validation across all cert products.

 

Thanks,

 

Jordan Rieger | Software Development Manager | Webnames.ca 

 



 

_______________________________________________
Acme mailing list -- acme@ietf.org <mailto:acme@ietf.org> 
To unsubscribe send an email to acme-leave@ietf.org <mailto:acme-leave@ietf.org>