<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.34 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-acme-dns-persist-01" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="ACME Persistent DNS Challenge">Automated Certificate Management Environment (ACME) Challenge for Persistent DNS TXT Record Validation</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-acme-dns-persist-01"/>
    <author initials="S." surname="Heurich" fullname="Shiloh Heurich">
      <organization>Fastly</organization>
      <address>
        <email>sheurich@fastly.com</email>
      </address>
    </author>
    <author initials="H." surname="Birge-Lee" fullname="Henry Birge-Lee">
      <organization>Crosslayer Labs, Inc.</organization>
      <address>
        <email>henry@crosslayerlabs.com</email>
      </address>
    </author>
    <author initials="M." surname="Slaughter" fullname="Michael Slaughter">
      <organization>Amazon Trust Services</organization>
      <address>
        <email>slghtr@amazon.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="24"/>
    <area>Security</area>
    <workgroup>Automated Certificate Management Environment</workgroup>
    <keyword>acme</keyword>
    <keyword>dns</keyword>
    <keyword>validation</keyword>
    <keyword>persistent</keyword>
    <abstract>
      <?line 51?>

<t>This document specifies "dns-persist-01", a new validation method for the Automated Certificate Management Environment (ACME) protocol. This method allows a Certification Authority (CA) to verify control over a domain by confirming the presence of a persistent DNS TXT record containing CA and account identification information. This method is particularly suited for environments where traditional challenge methods are impractical, such as multi-tenant hosting platforms, enterprise DNS environments, and IoT deployments. The validation method is designed with a strong focus on security and robustness, incorporating widely adopted industry best practices for persistent domain control validation. This design aims to make it suitable for Certification Authorities operating under various policy environments, including those that align with the CA/Browser Forum Baseline Requirements.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-acme-dns-persist/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Automated Certificate Management Environment Working Group mailing list (<eref target="mailto:acme@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/acme/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/acme/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-acme/draft-ietf-acme-dns-persist"/>.</t>
    </note>
  </front>
  <middle>
    <?line 55?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Automated Certificate Management Environment (ACME) protocol <xref target="RFC8555"/> defines mechanisms for automating certificate issuance and domain validation. The existing challenge methods, "http-01" and "dns-01", require real-time interaction between the ACME client and the domain's infrastructure during the validation process. While effective for many use cases, these methods present challenges in certain deployment scenarios.</t>
      <t>Examples include:</t>
      <ul spacing="normal">
        <li>
          <t>Edge compute and multi-tenant hosting platforms where the entity managing the DNS zone is distinct from the tenant subscribing to the certificate.</t>
        </li>
        <li>
          <t>Organizations that wish to pre-validate domains and batch issuance operations offline or at a later time.</t>
        </li>
        <li>
          <t>Environments with strict change management processes where DNS modifications require approval workflows.</t>
        </li>
        <li>
          <t>Scenarios requiring wildcard certificates where domain control is proven once and reused over an extended period.</t>
        </li>
        <li>
          <t>Internet of Things (IoT) deployments where devices may not be able to host an HTTP service or coordinate DNS updates in real-time.</t>
        </li>
      </ul>
      <t>This document defines a new ACME challenge type, "dns-persist-01". This method proves control over a Fully Qualified Domain Name (FQDN) by confirming the presence of a persistent DNS TXT record containing CA and account identification information.</t>
      <t>The record format is based on the "issue-value" syntax from <xref target="RFC8659"/>, incorporating an <tt>issuer-domain-name</tt> and a mandatory <tt>accounturi</tt> parameter <xref target="RFC8657"/> that uniquely identifies the applicant's account. This design provides strong binding between the domain, the CA, and the specific account requesting validation.</t>
      <section anchor="robustness-and-alignment">
        <name>Robustness and Alignment with Industry Best Practices</name>
        <t>This validation method is designed to provide a robust and persistent mechanism for domain control verification within the ACME protocol. Its technical design incorporates widely adopted security principles and best practices for domain validation, ensuring high assurance regardless of the specific CA policy environment. These principles include, but are not limited to:</t>
        <ol spacing="normal" type="1"><li>
            <t>The use of a well-defined, unique DNS label (e.g., "_validation-persist") for persistent validation records, minimizing potential conflicts.</t>
          </li>
          <li>
            <t>Consideration of DNS TTL values when determining the effective validity period of an authorization, balancing persistence with responsiveness to DNS changes (see <xref target="validation-data-reuse-and-ttl-handling"/>).</t>
          </li>
          <li>
            <t>Explicit binding of the domain validation to a specific ACME account through a unique identifier, establishing clear accountability and enhancing security against unauthorized use.</t>
          </li>
        </ol>
        <t>Certification Authorities operating under various trust program requirements will find this technical framework suitable for their domain validation needs, as its design inherently supports robust and auditable validation practices.</t>
        <t/>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<dl>
        <dt><strong>DNS TXT Record Persistent DCV Domain Label</strong></dt>
        <dd>
          <t>The label "_validation-persist" as specified in this document. This label is consistent with industry practices for persistent domain validation.</t>
        </dd>
        <dt><strong>Validation Domain Name</strong></dt>
        <dd>
          <t>The domain name at which the validation TXT record is provisioned. It is formed by prepending the DNS TXT Record Persistent DCV Domain Label to the FQDN being validated.
</t>
          <t>This term follows the precedent set by <xref target="RFC8555"/>, Section 8.4, which uses "validation domain name" for the analogous <tt>_acme-challenge.&lt;FQDN&gt;</tt> label in the dns-01 challenge. This document avoids the term "Authorization Domain Name" because the CA/Browser Forum Baseline Requirements <xref target="cabf-br"/> define it as the FQDN used to obtain authorization, without any label prepended.</t>
        </dd>
        <dt><strong>Issuer Domain Name</strong></dt>
        <dd>
          <t>A domain name disclosed by the CA in Section 4.2 of the CA's Certificate Policy and/or Certification Practices Statement to identify the CA for the purposes of this validation method.
</t>
          <t>Note: The <tt>issuer-domain-names</tt> provided in the challenge object <bcp14>MAY</bcp14> be drawn from the machine-readable <tt>caaIdentities</tt> array in the ACME server's directory object, as specified in <xref target="RFC8555"/>, Section 7.1.1. This creates a clearer programmatic link between the server's advertised identities and the challenge object.</t>
        </dd>
        <dt><strong>Validation Data Reuse Period</strong></dt>
        <dd>
          <t>The period during which a CA may rely on validation data, as defined by the CA's practices and applicable requirements.</t>
        </dd>
        <dt><strong>persistUntil</strong></dt>
        <dd>
          <t>An optional parameter in the validation record that specifies the timestamp after which the validation record should no longer be considered valid by CAs. The value <bcp14>MUST</bcp14> be a base-10 encoded integer representing a UNIX timestamp (the number of seconds since 1970-01-01T00:00:00Z ignoring leap seconds).</t>
        </dd>
      </dl>
      <t/>
    </section>
    <section anchor="dns-persist-01-challenge">
      <name>The "dns-persist-01" Challenge</name>
      <t>The "dns-persist-01" challenge allows an ACME client to demonstrate control over an FQDN by proving it can provision a DNS TXT record containing specific, persistent validation information. The validation information links the FQDN to both the Certificate Authority performing the validation and the specific ACME account requesting the validation.</t>
      <t>When an ACME client accepts a "dns-persist-01" challenge, it proves control by provisioning a DNS TXT record at the Validation Domain Name. Unlike the existing "dns-01" challenge, this record is designed to persist and may be reused for multiple certificate issuances over an extended period.</t>
      <section anchor="challenge-object">
        <name>Challenge Object</name>
        <t>The challenge object for "dns-persist-01" contains the following fields:</t>
        <ul spacing="normal">
          <li>
            <t><strong>type</strong> (required, string): The string "dns-persist-01"</t>
          </li>
          <li>
            <t><strong>url</strong> (required, string): The URL to which a response can be posted</t>
          </li>
          <li>
            <t><strong>status</strong> (required, string): The status of this challenge</t>
          </li>
          <li>
            <t><strong>accounturi</strong> (required, string): A URI identifying the ACME account requesting validation, using the identifier format specified in <xref target="RFC8657"/>, Section 3. This is the URI the CA expects in the DNS record and the mechanism by which the CA communicates alternative URIs to the client. Clients that pre-provisioned a record using their ACME account URL (<xref target="RFC8555"/>, Section 7.3) <bcp14>SHOULD</bcp14> verify the value identifies the same account.</t>
          </li>
          <li>
            <t><strong>issuer-domain-names</strong> (required, array of strings): A list of one or more Issuer Domain Names. The client <bcp14>MUST</bcp14> choose one of these domain names to include in the DNS TXT record. The challenge is successful if a valid TXT record is found that uses any one of the provided domain names.  </t>
            <t>
Each string in the array <bcp14>MUST</bcp14> be a domain name that complies with the following normalization rules:  </t>
            <ol spacing="normal" type="1"><li>
                <t>The domain name <bcp14>MUST</bcp14> be represented in A-label format (Punycode, <xref target="RFC5890"/>).</t>
              </li>
              <li>
                <t>All characters <bcp14>MUST</bcp14> be lowercase.</t>
              </li>
              <li>
                <t>The domain name <bcp14>MUST NOT</bcp14> have a trailing dot.</t>
              </li>
            </ol>
            <t>
The server <bcp14>MUST</bcp14> ensure the array is not empty. Servers <bcp14>MUST NOT</bcp14> send more than 10 issuer domain names. This limit serves as a practical measure to prevent denial-of-service vectors against clients. Clients <bcp14>MUST</bcp14> consider a challenge malformed if the <tt>issuer-domain-names</tt> array is empty or if it contains more than 10 entries, and <bcp14>MUST</bcp14> reject such challenges. Each domain name <bcp14>MUST NOT</bcp14> exceed 253 octets in length.</t>
          </li>
        </ul>
        <t>The following shows an example challenge object:</t>
        <figure anchor="fig-challenge-object">
          <name>Example dns-persist-01 Challenge Object</name>
          <sourcecode type="json"><![CDATA[
{
  "type": "dns-persist-01",
  "url": "https://ca.example/acme/authz/1234/0",
  "status": "pending",
  "accounturi": "https://ca.example/acct/123",
  "issuer-domain-names": ["authority.example", "ca.example.net"]
}
]]></sourcecode>
        </figure>
        <t/>
      </section>
    </section>
    <section anchor="challenge-response-and-verification">
      <name>Challenge Response and Verification</name>
      <t>To respond to the challenge, the ACME client provisions a DNS TXT record at the Validation Domain Name of the domain being validated. The Validation Domain Name is formed by prepending the label "_validation-persist" to the domain name being validated.</t>
      <t>For example, if the domain being validated is "example.com", the Validation Domain Name would be "_validation-persist.example.com".</t>
      <t>The client indicates it is ready for validation by POSTing an empty JSON object (<tt>{}</tt>) to the challenge URL, following the procedure defined in <xref target="RFC8555"/>, Section 7.5.1.</t>
      <section anchor="validation-record-format">
        <name>Validation Record Format</name>
        <t>The RDATA of this TXT record <bcp14>MUST</bcp14> fulfill the following requirements:</t>
        <ol spacing="normal" type="1"><li>
            <t>The RDATA value <bcp14>MUST</bcp14> conform to the issue-value syntax defined in <xref target="RFC8659"/>, Section 4.2. To ensure forward compatibility, the server <bcp14>MUST</bcp14> ignore any parameter within the issue-value that has an unrecognized tag.</t>
          </li>
          <li>
            <t>The <tt>issuer-domain-name</tt> portion of the issue-value <bcp14>MUST</bcp14> be one of the Issuer Domain Names provided by the CA in the <tt>issuer-domain-names</tt> array of the challenge object. If the <tt>issuer-domain-name</tt> does not match any of the provided values, the CA <bcp14>MUST</bcp14> reject the record.</t>
          </li>
          <li>
            <t>The issue-value <bcp14>MUST</bcp14> contain an <tt>accounturi</tt> parameter whose value is a URI that identifies the ACME account requesting validation.  </t>
            <t>
CAs <bcp14>MUST</bcp14> accept the URI of the ACME account object (<xref target="RFC8555"/>, Section 7.3) as a valid <tt>accounturi</tt> value. CAs <bcp14>MAY</bcp14> also accept other URIs, provided each such URI uniquely and permanently identifies a single ACME account and satisfies the uniqueness requirements of <xref target="RFC8657"/>, Section 5.4. CAs <bcp14>MUST NOT</bcp14> reassign a URI to a different account. When an ACME account is deactivated, CAs <bcp14>MUST</bcp14> treat all URIs associated with that account as invalid for validation purposes. The CA <bcp14>MUST</bcp14> verify that the URI in the DNS record identifies the ACME account making the request; if it does not, the CA <bcp14>MUST</bcp14> reject the record. In the absence of more specific comparison rules, implementations <bcp14>MUST</bcp14> use Simple String Comparison as defined in <xref target="RFC3986"/>, Section 6.2.1.</t>
          </li>
          <li>
            <t>The issue-value <bcp14>MAY</bcp14> contain a <tt>policy</tt> parameter. If present, this parameter modifies the validation scope. The <tt>policy</tt> parameter follows the 'tag=value' syntax from <xref target="RFC8659"/>. Comparison of the values defined for this parameter <bcp14>MUST</bcp14> be case-insensitive (e.g., "WILDCARD" and "wildcard" are equivalent).  </t>
            <t>
Note: The requirement to ignore unrecognized parameters (item 1) ensures forward compatibility, allowing future extensions without breaking existing implementations, consistent with ACME's extensibility model (<xref target="RFC8555"/>). The explicit case-insensitivity requirement is necessary to ensure consistent behavior across implementations; without it, some CAs might reject unknown parameter values, preventing protocol evolution.  </t>
            <t>
The following value for the <tt>policy</tt> parameter is defined with respect to subdomain and wildcard validation:  </t>
            <ul spacing="normal">
              <li>
                <t><tt>policy=wildcard</tt>: If this value is present, the CA <bcp14>MAY</bcp14> consider this validation sufficient for issuing certificates for the validated FQDN, for specific subdomains of the validated FQDN (as covered by wildcard scope or specific subdomain validation rules), and for wildcard certificates (e.g., <tt>*.example.com</tt>). See <xref target="wildcard-certificate-validation"/> and <xref target="subdomain-certificate-validation"/>.</t>
              </li>
            </ul>
            <t>
If the <tt>policy</tt> parameter is absent, or if its value is anything other than <tt>wildcard</tt>, the CA <bcp14>MUST</bcp14> proceed as if the <tt>policy</tt> parameter were not present (i.e., the validation applies only to the specific FQDN).</t>
          </li>
          <li>
            <t>The issue-value <bcp14>MAY</bcp14> contain a <tt>persistUntil</tt> parameter. If present, the value <bcp14>MUST</bcp14> be a base-10 encoded integer representing a UNIX timestamp (the number of seconds since 1970-01-01T00:00:00Z ignoring leap seconds). If the value is not a valid base-10 integer, the CA <bcp14>MUST</bcp14> treat the record as malformed and reject it. CAs <bcp14>MUST NOT</bcp14> consider this validation record valid for new validation attempts after the specified timestamp. However, this does not affect the reuse of already-validated data.</t>
          </li>
        </ol>
        <t>This specification defines the following case-handling rules for parameter values in dns-persist-01 records:</t>
        <ul spacing="normal">
          <li>
            <t><tt>accounturi</tt>: The value is a URI. CAs <bcp14>MUST</bcp14> compare <tt>accounturi</tt> values using Simple String Comparison per <xref target="RFC3986"/>, Section 6.2.1, with no case-folding or other normalization.</t>
          </li>
          <li>
            <t><tt>policy</tt>: Case-insensitive, as specified in item 4 above.</t>
          </li>
          <li>
            <t><tt>persistUntil</tt>: The value is a base-10 integer. Case does not apply.</t>
          </li>
        </ul>
        <t>For example, for validation of the FQDN "example.com" with issuer domain name "authority.example" and account URI "https://ca.example/acct/123", the DNS TXT record would contain:</t>
        <figure anchor="ex-basic-validation">
          <name>Basic Validation TXT Record</name>
          <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123")
]]></sourcecode>
        </figure>
      </section>
      <section anchor="verification-procedure">
        <name>Verification Procedure</name>
        <t>The ACME server verifies the challenge by performing a DNS lookup for TXT records at the Validation Domain Name. It then iterates through the returned records to find one that conforms to the required structure. For a record to be considered valid, its <tt>issuer-domain-name</tt> value <bcp14>MUST</bcp14> match one of the values provided in the <tt>issuer-domain-names</tt> array from the challenge object, and it <bcp14>MUST</bcp14> contain an <tt>accounturi</tt> parameter that identifies the requesting account. When comparing issuer domain names, the server <bcp14>MUST</bcp14> adhere to the normalization rules specified in <xref target="challenge-object"/>. The server also interprets any <tt>policy</tt> parameter values according to this specification. If no record meeting all requirements is found, the server <bcp14>MUST</bcp14> treat the challenge as failed.</t>
      </section>
      <section anchor="multiple-issuer-support">
        <name>Multiple Issuer Support</name>
        <t>A domain <bcp14>MAY</bcp14> authorize multiple Certificate Authorities (CAs) by provisioning a separate <tt>_validation-persist</tt> TXT record for each issuer. This allows domain owners to maintain relationships with multiple CAs simultaneously, enhancing flexibility and resilience.</t>
        <section anchor="coexistence-of-records">
          <name>Coexistence of Records</name>
          <t>When multiple TXT records are present at the same DNS label (e.g., <tt>_validation-persist.example.com</tt>), each record functions as an independent authorization for the specified issuer. This follows a similar pattern to CAA records <xref target="RFC8659"/>, where multiple records at the same label are permissible.</t>
        </section>
        <section anchor="ca-verification-process">
          <name>CA Verification Process</name>
          <t>When a CA performs validation for a domain with multiple <tt>_validation-persist</tt> TXT records, it <bcp14>MUST</bcp14> follow these steps:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Query DNS</strong>: Retrieve all TXT records from the Validation Domain Name.</t>
            </li>
            <li>
              <t><strong>Filter Records</strong>: Iterate through the returned records to find those where the <tt>issuer-domain-name</tt> value matches one of the Issuer Domain Names the CA is configured to use for this validation. The CA <bcp14>MUST</bcp14> ignore all other records.</t>
            </li>
            <li>
              <t><strong>Validate Record</strong>: For each matching record, the CA proceeds to validate it according to the requirements in this specification, including verifying the <tt>accounturi</tt> and <tt>persistUntil</tt> parameters. If any matching record satisfies all requirements, the validation succeeds.</t>
            </li>
            <li>
              <t><strong>Handle No Match</strong>: If no record with a matching <tt>issuer-domain-name</tt> is found, or if no matching record satisfies all validation requirements, the validation attempt <bcp14>MUST</bcp14> fail.</t>
            </li>
          </ol>
        </section>
        <section anchor="security-and-management-considerations">
          <name>Security and Management Considerations</name>
          <t>When authorizing multiple issuers, domain owners <bcp14>MUST</bcp14> consider the following:</t>
          <dl>
            <dt><strong>Auditing</strong></dt>
            <dd>
              <t>Regularly audit DNS records to ensure that only intended CAs remain authorized. Remove records for CAs that are no longer in use.</t>
            </dd>
            <dt><strong>Independent Security</strong></dt>
            <dd>
              <t>Each authorized CA operates independently. The compromise of one CA's systems does not directly affect the security of other authorized CAs.</t>
            </dd>
            <dt><strong>Weakest Link</strong></dt>
            <dd>
              <t>The domain's overall security posture is influenced by the security practices of all authorized CAs. Domain owners should consider the practices of each CA they authorize.</t>
            </dd>
            <dt><strong>Authorization Removal</strong></dt>
            <dd>
              <t>To de-authorize a CA, the corresponding TXT record <bcp14>MUST</bcp14> be deleted from the DNS zone.</t>
            </dd>
          </dl>
        </section>
        <section anchor="example-authorizing-two-cas">
          <name>Example: Authorizing Two CAs</name>
          <t>This example demonstrates how a domain owner can authorize two different CAs, "ca1.example" and "ca2.example", to issue certificates for <tt>example.org</tt>.</t>
          <t><strong>DNS Configuration:</strong></t>
          <figure anchor="ex-multiple-ca-auth">
            <name>Multiple CA Authorization Records</name>
            <sourcecode type="dns"><![CDATA[
_validation-persist.example.org. 3600 IN TXT ("ca1.example;"
" accounturi=https://ca1.example/acct/12345;"
" policy=wildcard")
_validation-persist.example.org. 3600 IN TXT ("ca2.example;"
" accounturi=https://ca2.example/acct/67890;"
" persistUntil=1767225600")
]]></sourcecode>
          </figure>
          <t><strong>Verification Flow for CA1:</strong></t>
          <ol spacing="normal" type="1"><li>
              <t>CA1 queries for TXT records at <tt>_validation-persist.example.org</tt>.</t>
            </li>
            <li>
              <t>It receives both records.</t>
            </li>
            <li>
              <t>It filters for the record where <tt>issuer-domain-name</tt> is "ca1.example".</t>
            </li>
            <li>
              <t>It validates the request using this record, noting the <tt>policy=wildcard</tt> authorization.</t>
            </li>
            <li>
              <t>The second record for "ca2.example" is ignored.</t>
            </li>
          </ol>
          <t><strong>Verification Flow for CA2:</strong></t>
          <ol spacing="normal" type="1"><li>
              <t>CA2 queries for TXT records at <tt>_validation-persist.example.org</tt>.</t>
            </li>
            <li>
              <t>It receives both records.</t>
            </li>
            <li>
              <t>It filters for the record where <tt>issuer-domain-name</tt> is "ca2.example".</t>
            </li>
            <li>
              <t>It validates the request using this record, noting the <tt>persistUntil</tt> constraint.</t>
            </li>
            <li>
              <t>The first record for "ca1.example" is ignored.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="just-in-time-validation">
        <name>Just-in-Time Validation</name>
        <t>When processing a new authorization request, a CA <bcp14>MAY</bcp14> perform an immediate DNS lookup for <tt>_validation-persist</tt> TXT records at the Validation Domain Name corresponding to the requested domain identifier.</t>
        <t>If one or more such records exist, the CA <bcp14>MUST</bcp14> evaluate them according to the requirements specified in <xref target="multiple-issuer-support"/>. If at least one record meets all validation requirements, the CA <bcp14>MAY</bcp14> transition the authorization to the "valid" status without returning a "pending" challenge to the client. This mechanism is an optimization and does not alter the ACME state machine defined in <xref target="RFC8555"/>. The server internally transitions the authorization from "pending" through "processing" to "valid" instantaneously. From the client's perspective, it receives a "valid" authorization object directly in response to its creation request.</t>
        <t>If no DNS TXT record meets the validation requirements, or if the records are absent, the CA <bcp14>MUST</bcp14> proceed with the standard authorization flow by returning a "pending" authorization with an associated <tt>dns-persist-01</tt> challenge object.</t>
        <t>CAs implementing Just-in-Time validation <bcp14>SHOULD</bcp14> rate-limit JIT DNS lookups per domain identifier, independent of the requesting account, to prevent amplification attacks where multiple accounts trigger excessive queries against a target domain. CAs <bcp14>SHOULD</bcp14> restrict JIT validation to accounts that have previously completed a successful <tt>dns-persist-01</tt> validation. CAs implementing Just-in-Time validation <bcp14>SHOULD</bcp14> provide account activity notifications or logging, as this path eliminates the challenge-response interaction that might otherwise provide a detection window for account compromise.</t>
        <t>This mechanism enables efficient reuse of persistent validation records while maintaining the security properties of the validation method.</t>
      </section>
      <section anchor="pre-provisioning-records">
        <name>Pre-Provisioning Records</name>
        <t>Domain owners <bcp14>MAY</bcp14> provision <tt>_validation-persist</tt> TXT records before any ACME interaction occurs. When constructing records without a challenge object, the following values <bcp14>MUST</bcp14> be used:</t>
        <ul spacing="normal">
          <li>
            <t><strong>accounturi</strong>: The ACME account URL, as returned in the <tt>Location</tt> header of the account creation response (<xref target="RFC8555"/>, Section 7.3).</t>
          </li>
          <li>
            <t><strong>issuer-domain-name</strong>: Clients <bcp14>MAY</bcp14> use the <tt>caaIdentities</tt> array from the ACME directory metadata (<xref target="RFC8555"/>, Section 7.1.1) as a hint for <tt>issuer-domain-name</tt> selection. CAs that populate <tt>caaIdentities</tt> <bcp14>SHOULD</bcp14> ensure these values are consistent with the <tt>issuer-domain-name</tt> values they accept in <tt>dns-persist-01</tt> records. If <tt>caaIdentities</tt> is unavailable, the <tt>issuer-domain-name</tt> <bcp14>MAY</bcp14> be obtained from the CA's Certificate Policy or Certification Practice Statement.</t>
          </li>
        </ul>
        <t>Organizations pre-provisioning records <bcp14>SHOULD</bcp14> maintain an inventory of <tt>_validation-persist</tt> records and the ACME accounts they reference. Records <bcp14>MAY</bcp14> include a <tt>persistUntil</tt> parameter to bound their effective lifetime (see <xref target="persist-until-parameter-considerations"/>). Domain owners <bcp14>SHOULD</bcp14> audit <tt>_validation-persist</tt> records after any DNS infrastructure security incident, as pre-provisioned records persist beyond the window of compromise.</t>
        <t>CAs implementing <tt>dns-persist-01</tt> <bcp14>SHOULD</bcp14> maintain stable account URIs for the lifetime of the account and <bcp14>SHOULD</bcp14> document their URI stability guarantees. If a CA must change its URI structure, it <bcp14>SHOULD</bcp14> provide a transition period during which both old and new URIs are accepted for validation.</t>
        <t/>
      </section>
    </section>
    <section anchor="wildcard-certificate-validation">
      <name>Wildcard and Subdomain Certificate Validation</name>
      <t>This validation method supports validation for wildcard certificates (e.g., *.example.com) and specific subdomains through the use of the <tt>policy=wildcard</tt> parameter.</t>
      <section anchor="scope-of-policywildcard">
        <name>Scope of <tt>policy=wildcard</tt></name>
        <t>When a DNS TXT record includes the <tt>policy=wildcard</tt> parameter value, it authorizes certificate issuance for:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>The validated FQDN itself</strong> - The base domain for which the TXT record exists (e.g., <tt>example.com</tt>)</t>
          </li>
          <li>
            <t><strong>Wildcard certificates</strong> - Wildcard certificates for the validated FQDN or any of its subdomains (e.g., <tt>*.example.com</tt>, <tt>*.dept.example.com</tt>)</t>
          </li>
          <li>
            <t><strong>Specific subdomains</strong> - Any specific subdomain of the validated FQDN (e.g., <tt>www.example.com</tt>, <tt>app.example.com</tt>, <tt>server.dept.example.com</tt>)</t>
          </li>
        </ol>
        <t>For example, a TXT record at <tt>_validation-persist.example.com</tt> containing <tt>policy=wildcard</tt> can validate certificates for <tt>example.com</tt>, <tt>*.example.com</tt>, <tt>www.example.com</tt>, and any other subdomain of <tt>example.com</tt>.</t>
        <t>If the <tt>policy</tt> parameter is absent, or if its value is anything other than <tt>wildcard</tt>, the validation applies only to the specific FQDN being validated. CAs <bcp14>MUST NOT</bcp14> consider such validation sufficient for wildcard certificates or subdomains.</t>
        <t/>
      </section>
    </section>
    <section anchor="subdomain-certificate-validation">
      <name>Subdomain Certificate Validation</name>
      <t>When the <tt>policy=wildcard</tt> parameter is present (as described in <xref target="wildcard-certificate-validation"/>), CAs <bcp14>MAY</bcp14> issue certificates for subdomains of the validated FQDN. This section describes the implementation details for subdomain validation.</t>
      <section anchor="determining-permitted-subdomains">
        <name>Determining Permitted Subdomains</name>
        <t>To determine which subdomains are permitted, the FQDN for which the persistent TXT record exists (referred to as the "validated FQDN") <bcp14>MUST</bcp14> be a proper suffix of the FQDN for which a certificate is requested (referred to as the "requested FQDN"). For wildcard certificate requests, the proper suffix check applies to the base domain name after removing the wildcard prefix (<tt>*.</tt>), consistent with <xref target="RFC8555"/>, Section 7.1.3. The base-level wildcard (e.g., <tt>*.example.com</tt> where the validated FQDN is <tt>example.com</tt>) is authorized directly by <xref target="wildcard-certificate-validation"/> and is not subject to this proper suffix requirement.</t>
        <t>For example, if <tt>dept.example.com</tt> is the validated FQDN, a certificate for <tt>server.dept.example.com</tt> is permitted because <tt>dept.example.com</tt> is its suffix. A certificate for <tt>*.server.dept.example.com</tt> is also permitted: after removing the wildcard prefix, <tt>server.dept.example.com</tt> has <tt>dept.example.com</tt> as a proper suffix.</t>
      </section>
      <section anchor="implementation-requirements">
        <name>Implementation Requirements</name>
        <ul spacing="normal">
          <li>
            <t>The persistent DNS TXT record <bcp14>MUST</bcp14> include <tt>policy=wildcard</tt> for subdomain validation to be permitted.</t>
          </li>
          <li>
            <t>CAs <bcp14>MUST</bcp14> verify that the validated FQDN is a proper suffix of the requested FQDN. For wildcard requests, this check applies to the base domain after removing the <tt>*.</tt> prefix. The base-level wildcard is exempt per <xref target="wildcard-certificate-validation"/>.</t>
          </li>
          <li>
            <t>If the <tt>policy</tt> parameter is absent or has any value other than <tt>wildcard</tt>, subdomain validation <bcp14>MUST NOT</bcp14> be permitted.</t>
          </li>
        </ul>
        <t>See <xref target="subdomain-validation-risks"/> for important security implications of enabling subdomain validation.</t>
      </section>
      <section anchor="example-subdomain-validation">
        <name>Example: Subdomain Validation</name>
        <t>For a persistent TXT record provisioned at <tt>_validation-persist.example.com</tt> with <tt>policy=wildcard</tt>:
- Permitted: <tt>example.com</tt>, <tt>www.example.com</tt>, <tt>app.example.com</tt>, <tt>server.dept.example.com</tt>, <tt>*.example.com</tt>, <tt>*.dept.example.com</tt>
- Not permitted without additional validation: <tt>otherexample.com</tt>, <tt>example.net</tt></t>
        <t/>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The requirement for CAs to ignore unknown parameter tags means that future extensions must be carefully designed to ensure that being ignored does not create security vulnerabilities. Extensions that require strict enforcement should use alternative mechanisms, such as separate record types or explicit version negotiation.</t>
      <section anchor="persistent-record-risks">
        <name>Persistent Record Risks</name>
        <t>The persistence of validation records creates extended windows of vulnerability compared to traditional ACME challenge methods. If an attacker gains control of a DNS zone containing persistent validation records, they can potentially obtain certificates for the validated domains until the validation records are removed or modified.</t>
        <t>Clients <bcp14>SHOULD</bcp14> protect validation records through appropriate DNS security measures, including:</t>
        <ul spacing="normal">
          <li>
            <t>Using DNS providers with strong authentication and access controls</t>
          </li>
          <li>
            <t>Implementing DNS Security Extensions (DNSSEC) where possible</t>
          </li>
          <li>
            <t>Monitoring DNS zones for unauthorized changes</t>
          </li>
          <li>
            <t>Regularly reviewing and rotating validation records</t>
          </li>
        </ul>
      </section>
      <section anchor="account-binding-security">
        <name>Account Binding Security</name>
        <t>The <tt>accounturi</tt> parameter provides strong binding between domain validation and specific ACME accounts. However, this binding depends on the security of the ACME account itself.</t>
        <t>The security of this method is fundamentally bound to the security of the ACME account's private key. If this key is compromised, an attacker can immediately use any pre-existing <tt>dns-persist-01</tt> authorizations associated with that account to issue certificates, without needing any further access to the domain's DNS infrastructure. This elevates the importance of secure key management for ACME clients far above that required for transient challenge methods, as the window of opportunity for an attacker is tied to the lifetime of the persistent authorization, not a momentary challenge.</t>
        <t>CAs <bcp14>SHOULD</bcp14> implement robust account security measures, including:</t>
        <ul spacing="normal">
          <li>
            <t>Strong authentication requirements for ACME accounts</t>
          </li>
          <li>
            <t>Account activity monitoring and anomaly detection</t>
          </li>
          <li>
            <t>Rapid account revocation capabilities</t>
          </li>
          <li>
            <t>Regular account security reviews</t>
          </li>
          <li>
            <t>Account key rotation policies and procedures</t>
          </li>
        </ul>
        <t>Clients <bcp14>SHOULD</bcp14> protect their ACME account keys with the same level of security as they would protect private keys for high-value certificates.</t>
        <section anchor="account-key-rotation">
          <name>Account Key Rotation</name>
          <t>The <tt>accounturi</tt> parameter is a stable identifier for the ACME account that persists across key rotations. When a client rotates their account key following the procedures defined in <xref target="RFC8555"/>, Section 7.3.5, the <tt>accounturi</tt> remains unchanged. Therefore, existing DNS TXT records containing the <tt>accounturi</tt> parameter do not require modification when performing account key rotations.</t>
        </section>
        <section anchor="account-uri-privacy">
          <name>Account URI Privacy</name>
          <t>Because <tt>_validation-persist</tt> TXT records are publicly queryable and long-lived, the <tt>accounturi</tt> value is visible to any party that queries DNS. When the same URI appears in records for multiple domains, third parties can infer that those domains share the same ACME account and likely share infrastructure. This correlation risk is noted in <xref target="RFC8657"/>, Section 5.9.</t>
          <t>CAs that accept alternative URIs (see item 3 of <xref target="challenge-response-and-verification"/>) can mitigate this risk by issuing distinct URIs for each domain or group of domains. Such URIs <bcp14>SHOULD</bcp14> be opaque and not easily enumerable. CAs <bcp14>MUST</bcp14> protect the integrity of any URI-to-account mapping with the same controls applied to other validation infrastructure. CAs that accept alternative URIs <bcp14>SHOULD</bcp14> document their URI issuance and lifecycle policies in their Certificate Policy or Certification Practice Statement.</t>
          <t>Domain owners who require privacy without CA cooperation can use separate ACME accounts for domains that should not be correlated. Domain owners and auditors who require independent verifiability <bcp14>SHOULD</bcp14> use the ACME account URL directly, since third parties cannot independently determine which account is bound to an alternative URI.</t>
        </section>
      </section>
      <section anchor="subdomain-validation-risks">
        <name>Subdomain Validation Risks</name>
        <t>Enabling subdomain validation via <tt>policy=wildcard</tt> creates significant security implications. Organizations using this feature <bcp14>SHOULD</bcp14> carefully control subdomain delegation and monitor for unauthorized subdomains. This policy value serves as the explicit mechanism for domain owners to opt-in to broader validation scopes.</t>
        <t>The ability to issue certificates for subdomains of validated FQDNs creates significant security risks, particularly in environments with subdomain delegation or where subdomains may be controlled by different entities.</t>
        <t>Potential risks include:</t>
        <ul spacing="normal">
          <li>
            <t>Subdomain takeover attacks where abandoned subdomains are claimed by attackers</t>
          </li>
          <li>
            <t>Unauthorized certificate issuance for subdomains controlled by different organizations</t>
          </li>
          <li>
            <t>Confusion about which entity has authority over specific subdomains</t>
          </li>
        </ul>
        <t>Organizations considering the use of subdomain validation <bcp14>SHOULD</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>Maintain strict control over subdomain delegation</t>
          </li>
          <li>
            <t>Implement monitoring for subdomain creation and changes</t>
          </li>
          <li>
            <t>Consider limiting subdomain validation to specific, controlled scenarios</t>
          </li>
          <li>
            <t>Provide clear governance policies for subdomain certificate authority</t>
          </li>
        </ul>
      </section>
      <section anchor="cross-ca-validation-reuse">
        <name>Cross-CA Validation Reuse</name>
        <t>The persistent nature of validation records raises concerns about potential reuse across different Certificate Authorities. While the <tt>issuer-domain-name</tt> parameter is designed to prevent such reuse, implementations <bcp14>MUST</bcp14> validate that the <tt>issuer-domain-name</tt> in the DNS record matches the CA's disclosed Issuer Domain Name.</t>
      </section>
      <section anchor="record-tampering-and-integrity">
        <name>Record Tampering and Integrity</name>
        <t>DNS records are generally not authenticated end-to-end, making them potentially vulnerable to tampering. CAs <bcp14>SHOULD</bcp14> implement additional integrity checks where possible and consider the overall security posture of the DNS infrastructure when relying on persistent validation records.</t>
        <t>Additionally, CAs <bcp14>SHOULD</bcp14> protect their <tt>issuer-domain-name</tt> with appropriate security measures. Using DNSSEC to protect the CA's <tt>issuer-domain-name</tt> is <bcp14>RECOMMENDED</bcp14>. An attacker who compromises the DNS for a CA's <tt>issuer-domain-name</tt> could disrupt validation or potentially impersonate the CA in certain scenarios. While this is a systemic DNS security risk that extends beyond this specification, it is amplified by any mechanism that relies on DNS for identity.</t>
      </section>
      <section anchor="issuer-domain-name-normalization-and-limits">
        <name>Issuer Domain Name Normalization and Limits</name>
        <t>The <tt>issuer-domain-names</tt> field requires domain names to be provided in a normalized form (lowercase A-labels, no trailing dot) to prevent errors and security issues arising from case-sensitivity differences or Unicode homograph attacks. By requiring a canonical representation, servers and clients can perform simple byte-for-byte comparisons, ensuring interoperability and deterministic validation. The order of names in the array has no significance.</t>
        <t>The server-side limit on the number of issuer domain names provided in a single challenge (e.g., 10) helps mitigate denial-of-service vectors where a client might be forced to perform an excessive number of DNS queries or a server might be burdened by validating against a large set of domains.</t>
      </section>
      <section anchor="dns-security-measures">
        <name>DNS Security Measures</name>
        <t>To enhance the security and integrity of the validation process, CAs and clients should consider implementing advanced DNS security measures.</t>
        <section anchor="dnssec">
          <name>DNSSEC</name>
          <t>DNS Security Extensions (DNSSEC) <xref target="RFC4033"/> provide cryptographic authentication of DNS data, ensuring that the validation records retrieved by a CA are authentic and have not been tampered with. CAs <bcp14>SHOULD</bcp14> use a DNSSEC-validating resolver when querying <tt>dns-persist-01</tt> TXT records. Without one, a CA will silently accept forged responses in DNSSEC-signed zones. If a CA performs DNSSEC validation, it <bcp14>MUST</bcp14> treat validation failure (e.g., expired signatures, broken chain of trust) as a challenge failure and <bcp14>MUST NOT</bcp14> use the record for domain validation. This requirement is stricter than the general DNSSEC guidance in <xref target="RFC8555"/> because <tt>dns-persist-01</tt> records are long-lived and their compromise would persist for the record's lifetime.</t>
        </section>
        <section anchor="multi-perspective-validation">
          <name>Multi-Perspective Validation</name>
          <t>Multi-Perspective Issuance Corroboration (MPIC) is a technique to validate domain control from multiple network vantage points. This is a critical defense against localized network attacks, such as BGP hijacking and DNS spoofing, which could otherwise lead to certificate mis-issuance.</t>
          <t>For CAs subject to requirements like the CA/Browser Forum Baseline Requirements, MPIC is essential for robust domain validation. However, for private PKI systems where the network topology is well-known and such localized attacks are not part of the threat model, operators might reasonably judge MPIC unnecessary.</t>
        </section>
      </section>
      <section anchor="validation-data-reuse-and-ttl-handling">
        <name>Validation Data Reuse and TTL Handling</name>
        <t>This validation method is explicitly designed for persistence and reuse. The period for which a CA may rely on validation data is its <tt>Validation Data Reuse Period</tt> (as defined in <xref target="conventions-and-definitions"/>). However, if the DNS TXT record's Time-to-Live (TTL) is shorter than this period, the CA <bcp14>MUST</bcp14> treat the record's TTL as the effective validation data reuse period for that specific validation. A TTL of zero means the CA <bcp14>MUST NOT</bcp14> reuse the validation data beyond the current validation attempt.</t>
        <t>CAs <bcp14>MAY</bcp14> reuse validation data obtained through this method for the duration of their validation data reuse period, subject to the TTL constraints described in this section. CAs <bcp14>MUST</bcp14> also respect any <tt>persistUntil</tt> constraint as specified in <xref target="validation-record-format"/>.</t>
      </section>
      <section anchor="persist-until-parameter-considerations">
        <name>persistUntil Parameter Considerations</name>
        <t>The <tt>persistUntil</tt> parameter provides domain owners with direct control over the validity period of their validation records. CAs and clients should be aware of the following considerations:</t>
        <ul spacing="normal">
          <li>
            <t>Domain owners should set expiration dates for validation records that balance security and operational needs. To avoid unexpected validation failures during certificate renewal, domain owners are advised to:
            </t>
            <ul spacing="normal">
              <li>
                <t>Align <tt>persistUntil</tt> values with certificate lifetimes or planned maintenance intervals</t>
              </li>
              <li>
                <t>Monitor or set reminders for <tt>persistUntil</tt> expirations</t>
              </li>
              <li>
                <t>Document <tt>persistUntil</tt> practices in certificate management procedures</t>
              </li>
              <li>
                <t>Automate updates to validation records with new <tt>persistUntil</tt> values during certificate renewal workflows</t>
              </li>
            </ul>
          </li>
          <li>
            <t>CAs <bcp14>MUST</bcp14> parse and apply the <tt>persistUntil</tt> timestamp as specified in <xref target="validation-record-format"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="revocation-and-invalidation">
        <name>Revocation and Invalidation of Persistent Authorizations</name>
        <t>The persistent nature of <tt>dns-persist-01</tt> authorizations means that a valid DNS TXT record can grant control for an extended period, potentially even if the domain owner's intent changes or if the associated ACME account key is compromised. Therefore, explicit mechanisms for revoking or invalidating these persistent authorizations are critical.</t>
        <t>The primary method for an Applicant to invalidate a <tt>dns-persist-01</tt> authorization for a domain is to <strong>remove the corresponding DNS TXT record</strong> from the Validation Domain Name. After the record is removed and resolver caches have expired, new validation attempts for the domain will fail. This behavior represents a deliberate design trade-off: any existing authorization obtained via this method will remain valid until it expires as per the CA's Validation Data Reuse Period. This persistence underscores the importance of protecting the ACME account key.</t>
        <t>For situations requiring immediate revocation of issuance capability, such as a suspected account key compromise, the primary and most effective mechanism is to <strong>deactivate the ACME account</strong> as specified in <xref target="RFC8555"/>, Section 7.3.6. Deactivating the account immediately and irrevocably prevents it from being used for any further certificate issuance.</t>
        <t>ACME Clients <bcp14>SHOULD</bcp14> provide clear mechanisms for users to:</t>
        <ul spacing="normal">
          <li>
            <t>Remove the <tt>_validation-persist</tt> DNS TXT record.</t>
          </li>
          <li>
            <t>Monitor the presence and content of their <tt>_validation-persist</tt> records to ensure they accurately reflect desired authorization.</t>
          </li>
        </ul>
        <t>Certificate Authorities (CAs) implementing this method <bcp14>MUST</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>During a validation attempt, fail the validation if the corresponding DNS TXT record is no longer present or if its content does not meet the requirements of this specification (e.g., incorrect <tt>issuer-domain-name</tt>, missing <tt>accounturi</tt>, altered <tt>policy</tt>).</t>
          </li>
          <li>
            <t>Respect the <tt>persistUntil</tt> constraint as specified in <xref target="validation-record-format"/>, rejecting new validation attempts after the specified timestamp even if the record remains present.</t>
          </li>
          <li>
            <t>Ensure their internal systems are capable of efficiently handling the validation failure when DNS records are removed or become invalid.</t>
          </li>
        </ul>
        <t>While this method provides a persistent signal of control, the fundamental ACME authorization object (as defined in <xref target="RFC8555"/>) remains subject to its own lifecycle, including expiration. A persistent DNS record allows for repeated authorizations, but each authorization object issued by the CA will have a defined validity period, after which it expires unless renewed.</t>
        <t/>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="acme-validation-methods-registry">
        <name>ACME Validation Methods Registry</name>
        <t>IANA is requested to register the following entry in the "ACME Validation Methods" registry:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Label</strong>: dns-persist-01</t>
          </li>
          <li>
            <t><strong>Identifier Type</strong>: dns</t>
          </li>
          <li>
            <t><strong>ACME</strong>: Y</t>
          </li>
          <li>
            <t><strong>Reference</strong>: This document</t>
          </li>
        </ul>
      </section>
      <section anchor="dns-node-names-registry">
        <name>Underscored and Globally Scoped DNS Node Names Registry</name>
        <t>IANA is requested to register the following entry in the "Underscored and Globally Scoped DNS Node Names" registry defined in <xref target="RFC8552"/>:</t>
        <ul spacing="normal">
          <li>
            <t><strong>RR Type</strong>: TXT</t>
          </li>
          <li>
            <t><strong>_NODE NAME</strong>: _validation-persist</t>
          </li>
          <li>
            <t><strong>Reference</strong>: This document</t>
          </li>
        </ul>
        <t/>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <t>When designing future extensions to this specification, new parameters <bcp14>SHOULD</bcp14> be designed to degrade gracefully when ignored by CAs that do not recognize them. Parameters that fundamentally change the security properties of the validation <bcp14>SHOULD NOT</bcp14> be introduced without a version negotiation mechanism.</t>
      <section anchor="dns-record-size-considerations">
        <name>DNS Record Size Considerations</name>
        <t>The RDATA of the TXT record, which contains the <tt>issue-value</tt>, may become large, particularly if the <tt>accounturi</tt> is long. While the total size of a TXT record's RDATA can be up to 65,535 octets, it must be formatted as a sequence of one or more character-strings, where each string is limited to 255 octets in length.</t>
        <t><strong>CA Implementation Guidelines:</strong>
- CAs <bcp14>SHOULD</bcp14> endeavor to keep the <tt>accounturi</tt> values they generate reasonably concise to minimize the final record size.</t>
        <t><strong>Client Implementation Guidelines:</strong>
- Clients <bcp14>MUST</bcp14> properly handle the creation of TXT records where the RDATA exceeds 255 octets. As specified in <xref target="RFC1035"/>, Section 3.3.14, clients <bcp14>MUST</bcp14> split the RDATA into multiple, concatenated, quote-enclosed strings, each no more than 255 octets. For example:</t>
        <artwork><![CDATA[
~~~ dns
_validation-persist.example.com. IN TXT ("first-part-of-long-string..."
" ...second-part-of-long-string")
~~~
{: #ex-long-txt-record title="Multi-String TXT Record Format"}
]]></artwork>
        <t>Failure to correctly format long RDATA values may result in validation failures.</t>
      </section>
      <section anchor="normalization-algorithm">
        <name>Domain Name Normalization Algorithm</name>
        <t>This section provides an algorithm for domain name normalization to promote interoperability. Both clients and servers <bcp14>SHOULD</bcp14> follow a consistent normalization process to ensure that domain names are handled uniformly.</t>
        <t>The recommended normalization process consists of the following four steps, applied in order:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Case-folding</strong>: Apply Unicode-aware, locale-independent case-folding to the entire domain name string to convert it to lowercase.</t>
          </li>
          <li>
            <t><strong>Unicode Normalization</strong>: Normalize the string to Unicode Normalization Form C (NFC).</t>
          </li>
          <li>
            <t><strong>Punycode Conversion</strong>: Convert each label of the domain name to its A-label (Punycode) representation as specified in <xref target="RFC5890"/>.</t>
          </li>
          <li>
            <t><strong>Trailing Dot Removal</strong>: Remove any trailing dot from the final string.</t>
          </li>
        </ol>
        <t>For example, a domain name like <tt>EXAMPLE.com.</tt> is normalized as follows:
1. After case-folding: <tt>example.com.</tt>
2. After NFC normalization: <tt>example.com.</tt>
3. After Punycode conversion: <tt>example.com.</tt>
4. After removing trailing dot: <tt>example.com</tt></t>
        <t>An internationalized domain name like <tt>üÑICODE-example.com.</tt> is normalized as follows:
1. After case-folding: <tt>ünicode-example.com.</tt>
2. After NFC normalization: <tt>ünicode-example.com.</tt>
3. After Punycode conversion: <tt>xn--nicode-example-9jb.com.</tt>
4. After removing trailing dot: <tt>xn--nicode-example-9jb.com</tt></t>
      </section>
      <section anchor="ca-implementation-guidelines">
        <name>CA Implementation Guidelines</name>
        <t>Certificate Authorities implementing this validation method should consider:</t>
        <ul spacing="normal">
          <li>
            <t>Establishing clear policies for Issuer Domain Name disclosure in Certificate Policies and Certification Practice Statements</t>
          </li>
          <li>
            <t>Developing procedures for handling validation record TTL variations</t>
          </li>
          <li>
            <t>Creating account security monitoring and incident response procedures</t>
          </li>
          <li>
            <t>Providing clear documentation for clients on proper record construction</t>
          </li>
        </ul>
        <section anchor="error-handling">
          <name>Error Handling</name>
          <t>When implementing the "dns-persist-01" validation method, Certificate Authorities <bcp14>SHOULD</bcp14> return appropriate ACME error codes to provide clear feedback on validation failures. Specifically:</t>
          <ul spacing="normal">
            <li>
              <t>CAs <bcp14>SHOULD</bcp14> return a <tt>malformed</tt> error (as defined in <xref target="RFC8555"/>) when the TXT record has invalid syntax, such as duplicate parameters, invalid timestamp format in the <tt>persistUntil</tt> parameter, missing mandatory <tt>accounturi</tt> parameter, or other syntactic violations of the record format specified in this document.</t>
            </li>
            <li>
              <t>CAs <bcp14>SHOULD</bcp14> return an <tt>unauthorized</tt> error (as defined in <xref target="RFC8555"/>) when validation fails due to authorization issues, including:  </t>
              <ul spacing="normal">
                <li>
                  <t>The <tt>accounturi</tt> parameter in the DNS TXT record does not identify the ACME account making the request</t>
                </li>
                <li>
                  <t>The <tt>persistUntil</tt> timestamp has expired, indicating that the validation record is no longer considered valid for new validation attempts</t>
                </li>
                <li>
                  <t>The <tt>issuer-domain-name</tt> in the DNS TXT record does not match any of the values provided in the <tt>issuer-domain-names</tt> array of the challenge object</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Note that these error codes apply to validation attempts on specific challenges. In the case of Just-in-Time Validation (see <xref target="just-in-time-validation"/>), when a CA finds a pre-existing DNS TXT record that does not meet validation requirements, the CA proceeds with the standard authorization flow by issuing a new <tt>pending</tt> challenge rather than returning an error.</t>
          <t>These error codes help ACME clients distinguish between different types of validation failures and take appropriate corrective actions.</t>
        </section>
      </section>
      <section anchor="client-implementation-guidelines">
        <name>Client Implementation Guidelines</name>
        <t>ACME clients implementing this validation method should consider:</t>
        <ul spacing="normal">
          <li>
            <t>Implementing secure DNS record management practices</t>
          </li>
          <li>
            <t>Providing clear user interfaces for managing persistent validation records</t>
          </li>
          <li>
            <t>Implementing validation record monitoring and alerting</t>
          </li>
          <li>
            <t>Designing appropriate error handling for validation failures</t>
          </li>
          <li>
            <t>Considering the security implications of persistent records in their threat models</t>
          </li>
        </ul>
      </section>
      <section anchor="dns-provider-considerations">
        <name>DNS Provider Considerations</name>
        <t>DNS providers supporting this validation method should consider:</t>
        <ul spacing="normal">
          <li>
            <t>Implementing appropriate access controls for validation record management</t>
          </li>
          <li>
            <t>Providing audit logging for validation record changes</t>
          </li>
          <li>
            <t>Supporting reasonable TTL values for validation records</t>
          </li>
          <li>
            <t>Considering dedicated interfaces or APIs for ACME validation record management</t>
          </li>
        </ul>
        <t/>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="basic-validation-example">
        <name>Basic Validation Example (FQDN Only)</name>
        <t>For validation of "example.com" by a CA using "authority.example" as its Issuer Domain Name, where the validation should only apply to "example.com":</t>
        <ol spacing="normal" type="1"><li>
            <t>CA provides challenge object with a list of valid Issuer Domain Names:  </t>
            <sourcecode type="json"><![CDATA[
{
  "type": "dns-persist-01",
  "url": "https://ca.example/acme/authz/1234/0",
  "status": "pending",
  "accounturi": "https://ca.example/acct/123",
  "issuer-domain-names": ["authority.example", "ca.example.net"]
}
]]></sourcecode>
          </li>
          <li>
            <t>Client chooses one of the provided Issuer Domain Names (e.g., "authority.example") and provisions a DNS TXT record (note the absence of a <tt>policy</tt> parameter for scope):  </t>
            <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123")
]]></sourcecode>
          </li>
          <li>
            <t>CA validates the record through DNS queries. This validation is sufficient only for "example.com".</t>
          </li>
        </ol>
      </section>
      <section anchor="wildcard-validation-example">
        <name>Wildcard Validation Example</name>
        <t>For validation of "*.example.com" (which also validates "example.com" and specific subdomains like "www.example.com") by a CA using "authority.example" as its Issuer Domain Name:</t>
        <ol spacing="normal" type="1"><li>
            <t>The CA provides a challenge object similar to the basic example, containing an <tt>issuer-domain-names</tt> array.</t>
          </li>
          <li>
            <t>Client chooses one of the provided Issuer Domain Names (e.g., "authority.example") and provisions a DNS TXT record at the base domain's Validation Domain Name, including <tt>policy=wildcard</tt>:  </t>
            <figure anchor="ex-wildcard-validation">
              <name>Wildcard Policy Validation Record</name>
              <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123;"
" policy=wildcard")
]]></sourcecode>
            </figure>
          </li>
          <li>
            <t>CA validates the record through DNS queries. This validation authorizes certificates for "example.com", "*.example.com", and specific subdomains like "www.example.com".</t>
          </li>
        </ol>
      </section>
      <section anchor="validation-example-with-persistuntil">
        <name>Validation Example with persistUntil</name>
        <t>For validation of "example.com" with an explicit expiration date:</t>
        <ol spacing="normal" type="1"><li>
            <t>The CA provides a challenge object similar to the basic example, containing an <tt>issuer-domain-names</tt> array.</t>
          </li>
          <li>
            <t>Client chooses one of the provided Issuer Domain Names (e.g., "authority.example") and provisions a DNS TXT record including <tt>persistUntil</tt>:  </t>
            <figure anchor="ex-persist-until">
              <name>Validation Record with Expiration Time</name>
              <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123;"
" persistUntil=1721952000")
]]></sourcecode>
            </figure>
          </li>
          <li>
            <t>CA validates the record. This validation is sufficient only for "example.com" and will not be considered valid after the specified timestamp (2024-07-26T00:00:00Z).</t>
          </li>
        </ol>
      </section>
      <section anchor="wildcard-validation-example-with-persistuntil">
        <name>Wildcard Validation Example with persistUntil</name>
        <t>For validation of "*.example.com" with an explicit expiration date:</t>
        <ol spacing="normal" type="1"><li>
            <t>The CA provides a challenge object similar to the basic example, containing an <tt>issuer-domain-names</tt> array.</t>
          </li>
          <li>
            <t>Client chooses one of the provided Issuer Domain Names (e.g., "authority.example") and provisions a DNS TXT record including <tt>policy=wildcard</tt> and <tt>persistUntil</tt>:  </t>
            <figure anchor="ex-wildcard-persist-until">
              <name>Wildcard Validation Record with Expiration Time</name>
              <sourcecode type="dns"><![CDATA[
_validation-persist.example.com. IN TXT ("authority.example;"
" accounturi=https://ca.example/acct/123;"
" policy=wildcard;"
" persistUntil=1721952000")
]]></sourcecode>
            </figure>
          </li>
          <li>
            <t>CA validates the record. This validation authorizes certificates for "example.com", "*.example.com", and specific subdomains, but will not be considered valid after the specified timestamp (2024-07-26T00:00:00Z).</t>
          </li>
        </ol>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8555" target="https://www.rfc-editor.org/info/rfc8555" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8555.xml">
          <front>
            <title>Automatic Certificate Management Environment (ACME)</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <author fullname="D. McCarney" initials="D." surname="McCarney"/>
            <author fullname="J. Kasten" initials="J." surname="Kasten"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8555"/>
          <seriesInfo name="DOI" value="10.17487/RFC8555"/>
        </reference>
        <reference anchor="RFC8659" target="https://www.rfc-editor.org/info/rfc8659" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8659.xml">
          <front>
            <title>DNS Certification Authority Authorization (CAA) Resource Record</title>
            <author fullname="P. Hallam-Baker" initials="P." surname="Hallam-Baker"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <date month="November" year="2019"/>
            <abstract>
              <t>The Certification Authority Authorization (CAA) DNS Resource Record allows a DNS domain name holder to specify one or more Certification Authorities (CAs) authorized to issue certificates for that domain name. CAA Resource Records allow a public CA to implement additional controls to reduce the risk of unintended certificate mis-issue. This document defines the syntax of the CAA record and rules for processing CAA records by CAs.</t>
              <t>This document obsoletes RFC 6844.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8659"/>
          <seriesInfo name="DOI" value="10.17487/RFC8659"/>
        </reference>
        <reference anchor="RFC8657" target="https://www.rfc-editor.org/info/rfc8657" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8657.xml">
          <front>
            <title>Certification Authority Authorization (CAA) Record Extensions for Account URI and Automatic Certificate Management Environment (ACME) Method Binding</title>
            <author fullname="H. Landau" initials="H." surname="Landau"/>
            <date month="November" year="2019"/>
            <abstract>
              <t>The Certification Authority Authorization (CAA) DNS record allows a domain to communicate an issuance policy to Certification Authorities (CAs) but only allows a domain to define a policy with CA-level granularity. However, the CAA specification (RFC 8659) also provides facilities for an extension to admit a more granular, CA-specific policy. This specification defines two such parameters: one allowing specific accounts of a CA to be identified by URIs and one allowing specific methods of domain control validation as defined by the Automatic Certificate Management Environment (ACME) protocol to be required.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8657"/>
          <seriesInfo name="DOI" value="10.17487/RFC8657"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5890" target="https://www.rfc-editor.org/info/rfc5890" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5890.xml">
          <front>
            <title>Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document is one of a collection that, together, describe the protocol and usage context for a revision of Internationalized Domain Names for Applications (IDNA), superseding the earlier version. It describes the document collection and provides definitions and other material that are common to the set. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5890"/>
          <seriesInfo name="DOI" value="10.17487/RFC5890"/>
        </reference>
        <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC8552" target="https://www.rfc-editor.org/info/rfc8552" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8552.xml">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="birgelee-sc082-security">
          <front>
            <title>Security of SC-082 Redux</title>
            <author initials="H." surname="Birge-Lee" fullname="Henry Birge-Lee">
              <organization>Princeton University</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="cabf-br" target="https://cabforum.org/baseline-requirements-documents/">
          <front>
            <title>Baseline Requirements for the Issuance and Management of Publicly-Trusted TLS Server Certificates</title>
            <author>
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="RFC4033" target="https://www.rfc-editor.org/info/rfc4033" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml">
          <front>
            <title>DNS Security Introduction and Requirements</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4033"/>
          <seriesInfo name="DOI" value="10.17487/RFC4033"/>
        </reference>
      </references>
    </references>
    <?line 676?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors acknowledge prior community work that directly informed this specification:</t>
      <ul spacing="normal">
        <li>
          <t>The CA/Browser Forum ballot proposals to enable persistent / static DNS Domain Control Validation signals in the Baseline Requirements <xref target="cabf-br"/>, in particular Ballot SC-082 ("Clarify CA Assisted DNS Validation under 3.2.2.4.7", authored by Michael Slaughter) and the active proposal SC-088 ("DNS TXT Record with Persistent Value DCV Method", also authored by Michael Slaughter). These efforts provided the policy framing and initial industry discussion motivating standardization of a reusable ACME DNS validation record.</t>
        </li>
        <li>
          <t>The formal and empirical security analysis of static / persistent DCV methods performed by Henry Birge-Lee ("Proof of static DCV security" presentation, the "Security of SC-082 Redux" paper <xref target="birgelee-sc082-security"/>, and related research), which helped clarify the threat model and informed the security considerations in this document.</t>
        </li>
        <li>
          <t>The Delegated DNS Domain Validation (DDDV) Threat Modeling Tiger Team discussions and document ("Validation SC - Delegated DNS Domain Validation (DDDV) Threat Model"), whose participants contributed to broad threat enumeration; notable contributors include Michael Slaughter (Amazon Trust Services), Corey Bonnell (DigiCert), Clint Wilson (Apple), and Martijn Katerbarg (Sectigo).</t>
        </li>
      </ul>
      <t>The authors also thank members of the ACME Working Group and CA/Browser Forum who provided early review, critique, and operational perspectives on persistent validation records.</t>
      <t>Any errors or omissions are the responsibility of the authors.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
SLJWTdfJAAA=

-->

</rfc>
