<?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-rfc2629 version 1.6.1 (Ruby 2.6.6) -->
<?rfc rfcedstyle="yes"?>
<?rfc strict="yes"?>
<?rfc compact="no"?>
<?rfc subcompact="no"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-acme-subdomains-02" category="std" consensus="true" tocDepth="2" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.0 -->
  <front>
    <title abbrev="ACME-SUBDOMAINS">ACME for Subdomains</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-acme-subdomains-02"/>
    <author initials="O." surname="Friel" fullname="Owen Friel">
      <organization>Cisco</organization>
      <address>
        <email>ofriel@cisco.com</email>
      </address>
    </author>
    <author initials="R." surname="Barnes" fullname="Richard Barnes">
      <organization>Cisco</organization>
      <address>
        <email>rlb@ipv.sx</email>
      </address>
    </author>
    <author initials="T." surname="Hollebeek" fullname="Tim Hollebeek">
      <organization>DigiCert</organization>
      <address>
        <email>tim.hollebeek@digicert.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2022" month="March" day="02"/>
    <area>Security</area>
    <workgroup>ACME Working Group</workgroup>
    <abstract>
      <t>This document outlines how ACME can be used by a client to obtain a certificate for a subdomain identifier from a certification authority. The client has fulfilled a challenge against a parent domain but does not need to fulfill a challenge against the explicit subdomain as certification authority policy allows issuance of the subdomain certificate without explicit subdomain ownership proof.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>ACME <xref target="RFC8555"/> defines a protocol that a certification authority (CA) and an applicant can use to automate the process of domain name ownership validation and X.509v3 (PKIX) <xref target="RFC5280"/> certificate issuance. This document outlines how ACME can be used to issue subdomain certificates, without requiring the ACME client to explicitly fulfill an ownership challenge against the subdomain identifiers - the ACME client need only fulfill an ownership challenge against a parent domain identifier.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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>
      <t>The following terms are defined in DNS Terminology <xref target="RFC8499"/> and are reproduced here:</t>
      <ul spacing="normal">
        <li>Label: An ordered list of zero or more octets that makes up a
    portion of a domain name.  Using graph theory, a label identifies
    one node in a portion of the graph of all possible domain names.</li>
        <li>Domain Name: An ordered list of one or more labels.</li>
        <li>Subdomain: "A domain is a subdomain of another domain if it is
    contained within that domain.  This relationship can be tested by
    seeing if the subdomain's name ends with the containing domain's
    name."  (Quoted from <xref target="RFC1034"/>, Section 3.1) For example, in the
    host name "nnn.mmm.example.com", both "mmm.example.com" and
    "nnn.mmm.example.com" are subdomains of "example.com".  Note that
    the comparisons here are done on whole labels; that is,
    "ooo.example.com" is not a subdomain of "oo.example.com".</li>
        <li>Fully-Qualified Domain Name (FQDN):  This is often just a clear way
    of saying the same thing as "domain name of a node", as outlined
    above.  However, the term is ambiguous.  Strictly speaking, a
    fully-qualified domain name would include every label, including
    the zero-length label of the root: such a name would be written
    "www.example.net." (note the terminating dot).  But, because every
    name eventually shares the common root, names are often written
    relative to the root (such as "www.example.net") and are still
    called "fully qualified".  This term first appeared in <xref target="RFC0819"/>.
    In this document, names are often written relative to the root.</li>
      </ul>
      <t>The following additional terms are used in this document:</t>
      <ul spacing="normal">
        <li>Certification Authority (CA): An organization that is responsible for the creation, issuance, revocation, and management of Certificates. The term applies equally to both Roots CAs and Subordinate CAs</li>
        <li>CSR: Certificate Signing Request</li>
        <li>Parent Domain: a domain is a parent domain of a subdomain if it contains that subdomain, as per the <xref target="RFC8499"/> definition of subdomain. For example, for the host name "nnn.mmm.example.com", both "mmm.example.com" and "example.com" are parent domains of "nnn.mmm.example.com".</li>
      </ul>
    </section>
    <section anchor="acme-workflow-and-identifier-requirements">
      <name>ACME Workflow and Identifier Requirements</name>
      <t>A typical ACME workflow for issuance of certificates is as follows:</t>
      <ol spacing="normal" type="1"><li>client POSTs a newOrder request that contains a set of "identifiers"</li>
        <li>server replies with a set of "authorizations" and a "finalize" URI</li>
        <li>client sends POST-as-GET requests to retrieve the "authorizations", with the downloaded "authorization" object(s) containing the "identifier" that the client must prove that they control, and a set of associated "challenges", one of which the the client must fulfil</li>
        <li>client proves control over the "identifier" in the "authorization" object by completing one of the specified challenges, for example, by publishing a DNS TXT record</li>
        <li>client POSTs a CSR to the "finalize" API</li>
        <li>server replies with an updated order object that includes a "certificate" URI</li>
        <li>client sends POST-as-GET request to the "certificate" URI to download the certificate</li>
      </ol>
      <t>ACME places the following restrictions on "identifiers":</t>
      <ul spacing="normal">
        <li>
          <xref target="RFC8555"/> section 7.1.3: The authorizations required are dictated by server policy; there may not be a 1:1 relationship between the order identifiers and the authorizations required.</li>
        <li>
          <xref target="RFC8555"/> section 7.1.4: the only type of "identifier" defined by the ACME specification is an FQDN: "The only type of identifier defined by this specification is a fully qualified domain name (type: "dns"). The domain name MUST be encoded in the form in which it would appear in a certificate."</li>
        <li>
          <xref target="RFC8555"/> section 7.4: the "identifier" in the CSR request must match the "identifier" in the newOrder request: "The CSR MUST indicate the exact same set of requested identifiers as the initial newOrder request."</li>
        <li>
          <xref target="RFC8555"/> section 8.3: the "identifier", or FQDN, in the "authorization" object must be used when fulfilling challenges via HTTP: "Construct a URL by populating the URL template ... where the domain field is set to the domain name being verified"</li>
        <li>
          <xref target="RFC8555"/> section 8.4: the "identifier", or FQDN, in the "authorization" object must be used when fulfilling challenges via DNS: "The client constructs the validation domain name by prepending the label "_acme-challenge" to the domain name being validated."</li>
      </ul>
      <t>ACME does not mandate that the "identifier" in a newOrder request matches the "identifier" in "authorization" objects.</t>
    </section>
    <section anchor="acme-issuance-of-subdomain-certificates">
      <name>ACME Issuance of Subdomain Certificates</name>
      <t>As noted in the previous section, ACME does not mandate that the "identifier" in a newOrder request matches the "identifier" in "authorization" objects. This means that the ACME specification does not preclude an ACME server processing newOrder requests and issuing certificates for a subdomain without requiring a challenge to be fulfilled against that explicit subdomain.</t>
      <t>ACME server policy could allow issuance of certificates for a subdomain to a client where the client only has to fulfill an authorization challenge for a parent domain of that subdomain. This allows a flow where a client proves ownership of, for example, "example.org" and then successfully obtains a certificate for "sub.example.org".</t>
      <t>ACME server policy is out of scope of this document, however some commentary is provided in <xref target="acme-server-policy-considerations"/>.</t>
      <t>Clients need a mechanism to instruct the ACME server that they are requesting authorization for all subdomains subordinate to the specified domain, as opposed to just requesting authorization for an explicit domain identifier. Clients need a mechanism to do this in both newAuthz and newOrder requests. ACME servers need a mechanism to indicate to clients that authorization objects are valid for all subdomains under the specified domain. These are described in this section.</t>
      <section anchor="acme-challenge-type">
        <name>ACME Challenge Type</name>
        <t>ACME for subdomains is restricted for use with "dns-01" challenges. If a server policy allows a client to fulfill a challenge against a parent domain of a requested certificate FQDN identifier, then the server MUST issue a "dns-01" challenge against that parent domain.</t>
      </section>
      <section anchor="authorization-object">
        <name>Authorization Object</name>
        <t>ACME <xref target="RFC8555"/> section 7.1.4 defines the authorization object. When ACME server policy allows authorization for subdomains subordinate to an domain, the server indicates this by including the "subdomains" flag in the authorization object for that domain identifier:</t>
        <artwork><![CDATA[
subdomains (optional, boolean):  This field MUST be present
   and true for authorizations where ACME server policy allows
   certificates to be issued for any subdomain subordinate to
   the domain specified in the 'identifier' field of the
   authorization object.
]]></artwork>
        <t>The following example shows an authorization object for the domain <tt>example.org</tt> where the authorization covers the subdomains subordinate to <tt>example.org</tt>.</t>
        <artwork><![CDATA[
   {
     "status": "valid",
     "expires": "2015-03-01T14:09:07.99Z",

     "identifier": {
       "type": "dns",
       "value": "example.org"
     },

     "challenges": [
       {
         "url": "https://example.com/acme/chall/prV_B7yEyA4",
         "type": "http-01",
         "status": "valid",
         "token": "DGyRejmCefe7v4NfDGDKfA",
         "validated": "2014-12-01T12:05:58.16Z"
       }
     ],

     "subdomains": true
   }
]]></artwork>
        <t>If the "subdomains" field is not included, then the assumed default value is false.</t>
      </section>
      <section anchor="pre-authorization">
        <name>Pre-Authorization</name>
        <t>The standard ACME workflow has authorization objects created reactively in response to a certificate order. ACME also allows for pre-authorization, where clients obtain authorization for an identifier proactively, outside of the context of a specific issuance. With the ACME pre-authorization flow, a client can pre-authorize for a domain once, and then issue multiple newOrder requests for certificates with identifiers in the subdomains subordinate to that domain.</t>
        <t>ACME <xref target="RFC8555"/> section 7.4.1 defines the "identifier" object for newAuthz requests. One additional field for the "identifier" object is defined:</t>
        <artwork><![CDATA[
subdomains (optional, boolean): An ACME client sets this flag
   to indicate to the server that it is requesting an authorization
   for the subdomains subordinate to the specified domain
   identifier value
]]></artwork>
        <t>Clients include the flag in the "identifier" object of newAuthz requests to indicate that they are requesting a subdomain authorization. In the following example newAuthz payload, the client is requesting pre-authorization for the subdomains subordinate to <tt>example.org</tt>.</t>
        <artwork><![CDATA[
     "payload": base64url({
       "identifier": {
         "type": "dns",
         "value": "example.org",
         "subdomains": true
       }
     })
]]></artwork>
        <t>If the server is willing to allow a single authorization for the subdomains, and there is not an existing authorization object for the identifier, then it will create an authorization object and include the "subdomains" flag with value of true. If the server policy does not allow creation of subdomain authorizations subordinate to that domain, the server can  create an authorization object for the indicated identifier, and include the "subdomains" flag with value of false. In both scenarios, handling of the pre-authorization follows the process documented in ACME section 7.4.1.</t>
      </section>
      <section anchor="new-orders">
        <name>New Orders</name>
        <t>Clients need a mechanism to optionally indicate to servers whether or not they are authorized to fulfill challenges against parent domains for a given identifier FQDN. For example, if a client places an order for an identifier <tt>foo.bar.example.org</tt>, and is authorized to update DNS TXT records against the parent domains <tt>bar.example.org</tt> or <tt>example.org</tt>, then the client needs a mechanism to indicate control over the parent domains to the ACME server.</t>
        <t>This can be achieved by adding an optional field "parentDomain" to the "identifiers" field in the order object:</t>
        <artwork><![CDATA[
parentDomain (optional, string): This is a parent domain of
   the requested identifier. The client MUST have DNS
   control over the parent domain.
]]></artwork>
        <t>This field specifies a parent domain of the identifier that the client has DNS control over, and is capable of fulfilling challenges against. Based on server policy, the server can choose to issue a challenge against any parent domain of the identifier up to and including the specified "parentDomain", and create a corresponding authorization object against the chosen identifier.</t>
        <t>In the following example newOrder payload, the client requests a certificate for identifier <tt>foo.bar.example.org</tt> and indicates that it can fulfill a challenge against the parent domain <tt>bar.example.org</tt>. The server can then choose to issue a challenge against either <tt>foo.bar.example.org</tt> or <tt>bar.example.org</tt> identifiers.</t>
        <artwork><![CDATA[
"payload": base64url({
       "identifiers": [
         { "type": "dns",
           "value": "foo.bar.example.org",
           "parentDomain": "bar.example.org"  }
       ],
       "notBefore": "2016-01-01T00:04:00+04:00",
       "notAfter": "2016-01-08T00:04:00+04:00"
     })
]]></artwork>
        <t>In the following example newOrder payload, the client requests a certificate for identifier <tt>foo.bar.example.org</tt> and indicates that it can fulfill a challenge against the parent domain <tt>example.org</tt>. The server can then choose to issue a challenge against any one of <tt>foo.bar.example.org</tt>, <tt>bar.example.org</tt> or <tt>example.org</tt> identifiers.</t>
        <artwork><![CDATA[
"payload": base64url({
       "identifiers": [
         { "type": "dns",
           "value": "foo.bar.example.org",
           "parentDomain": "example.org"  }
       ],
       "notBefore": "2016-01-01T00:04:00+04:00",
       "notAfter": "2016-01-08T00:04:00+04:00"
     })
]]></artwork>
        <t>If the client is unable to fulfill authorizations against parent domain, the client should not include the "parentDomain" field.</t>
        <t>Server newOrder handling generally follows the process documented ACME section 7.4. If the server is willing to allow subdomain authorizations for the domain specified in "parentDomain", then it creates an authorization object against that parent domain and includes the "subdomains" flag with a value of true. If the server policy does not allow creation of subdomain authorizations against that parent domain, then it can create an authorization object for the indicated identifier value, and includes the "subdomains" flag with value of false.</t>
      </section>
      <section anchor="directory-object-metadata">
        <name>Directory Object Metadata</name>
        <t>An ACME server can advertise support for authorization of subdomains by including the following boolean flag in its "ACME Directory Metadata Fields" registry:</t>
        <artwork><![CDATA[
subdomains (optional, bool): Indicates if an ACME server
   supports authorization of subdomains.
]]></artwork>
        <t>If not specified, then no default value is assumed. If an ACME server supports authorization of subdomains, it can indicate this by including this field with a value of "true".</t>
      </section>
    </section>
    <section anchor="illustrative-call-flow">
      <name>Illustrative Call Flow</name>
      <t>The call flow illustrated here uses the ACME pre-authorization flow using DNS-based proof of ownership.</t>
      <artwork><![CDATA[
+--------+                   +------+     +-----+
| Client |                   | ACME |     | DNS |
+--------+                   +------+     +-----+
    |                            |           |
 STEP 1: Pre-Authorization of parent domain
    |                            |           |
    | POST /newAuthz             |           |
    | "example.org"              |           |
    |--------------------------->|           |
    |                            |           |
    | 201 authorizations         |           |
    |<---------------------------|           |
    |                            |           |
    | Publish DNS TXT            |           |
    | "example.org"              |           |
    |--------------------------------------->|
    |                            |           |
    | POST /challenge            |           |
    |--------------------------->|           |
    |                            | Verify    |
    |                            |---------->|
    | 200 status=valid           |           |
    |<---------------------------|           |
    |                            |           |
    | Delete DNS TXT             |           |
    | "example.org"              |           |
    |--------------------------------------->|
    |                            |           |
 STEP 2: Place order for sub1.example.org
    |                            |           |
    | POST /newOrder             |           |
    | "sub1.example.org"         |           |
    |--------------------------->|           |
    |                            |           |
    | 201 status=ready           |           |
    |<---------------------------|           |
    |                            |           |
    | POST /finalize             |           |
    | CSR SAN "sub1.example.org" |           |
    |--------------------------->|           |
    |                            |           |
    | 200 OK status=valid        |           |
    |<---------------------------|           |
    |                            |           |
    | POST /certificate          |           |
    |--------------------------->|           |
    |                            |           |
    | 200 OK                     |           |
    | PEM SAN "sub1.example.org" |           |
    |<---------------------------|           |
    |                            |           |
 STEP 3: Place order for sub2.example.org
    |                            |           |
    | POST /newOrder             |           |
    | "sub2.example.org"         |           |
    |--------------------------->|           |
    |                            |           |
    | 201 status=ready           |           |
    |<---------------------------|           |
    |                            |           |
    | POST /finalize             |           |
    | CSR SAN "sub2.example.org" |           |
    |--------------------------->|           |
    |                            |           |
    | 200 OK status=valid        |           |
    |<---------------------------|           |
    |                            |           |
    | POST /certificate          |           |
    |--------------------------->|           |
    |                            |           |
    | 200 OK                     |           |
    | PEM SAN "sub2.example.org" |           |
    |<---------------------------|           |
]]></artwork>
      <ul spacing="normal">
        <li>
          <t>STEP 1: Pre-authorization of parent domain  </t>
          <t>
The client sends a newAuthz request for the parent domain including the "subdomains" flag in the identifier object.</t>
        </li>
      </ul>
      <artwork><![CDATA[
   POST /acme/new-authz HTTP/1.1
   Host: example.com
   Content-Type: application/jose+json

   {
     "protected": base64url({
       "alg": "ES256",
       "kid": "https://example.com/acme/acct/evOfKhNU60wg",
       "nonce": "uQpSjlRb4vQVCjVYAyyUWg",
       "url": "https://example.com/acme/new-authz"
     }),
     "payload": base64url({
       "identifier": {
         "type": "dns",
         "value": "example.org",
         "subdomains": true
       }
     }),
     "signature": "nuSDISbWG8mMgE7H...QyVUL68yzf3Zawps"
   }
]]></artwork>
      <t>The server creates and returns an authorization object for the identifier including the "subdomains" flag. The object is initially in "pending" state.</t>
      <artwork><![CDATA[
   {
     "status": "pending",
     "expires": "2015-03-01T14:09:07.99Z",

     "identifier": {
       "type": "dns",
       "value": "example.org"
     },

     "challenges": [
       {
         "url": "https://example.com/acme/chall/prV_B7yEyA4",
         "type": "http-01",
         "status": "pending",
         "token": "DGyRejmCefe7v4NfDGDKfA",
         "validated": "2014-12-01T12:05:58.16Z"
       }
     ],

     "subdomains": true
   }
]]></artwork>
      <t>Once the client completes the challenge, the server will transition the authorization object and associated challenge object status to "valid". The flow above illustrates the ACME server replying to the client's challenge with status of "valid" after the ACME server has validated the DNS challenge. However, the validation flow may take some time, so the client may need to poll the authorization resource to see when it is finalized.</t>
      <ul spacing="normal">
        <li>
          <t>STEP 2: The client places a newOrder for <tt>sub1.example.org</tt>  </t>
          <t>
The client sends a newOrder request to the server and includes the subdomain identifier. Note that the identifier is a subdomain of the parent domain that has been pre-authorised in step 1. The client does not need to include the "subdomains" field in the "identifier" object as it has already pre-authorized the parent domain.</t>
        </li>
      </ul>
      <artwork><![CDATA[
   POST /acme/new-order HTTP/1.1
   Host: example.com
   Content-Type: application/jose+json

   {
     "protected": base64url({
       "alg": "ES256",
       "kid": "https://example.com/acme/acct/evOfKhNU60wg",
       "nonce": "5XJ1L3lEkMG7tR6pA00clA",
       "url": "https://example.com/acme/new-order"
     }),
     "payload": base64url({
       "identifiers": [
         { "type": "dns", "value": "sub1.example.org" }
       ],
       "notBefore": "2016-01-01T00:04:00+04:00",
       "notAfter": "2016-01-08T00:04:00+04:00"
     }),
     "signature": "H6ZXtGjTZyUnPeKn...wEA4TklBdh3e454g"
   }
]]></artwork>
      <t>As an authorization object already exists for the parent domain, the server replies with an order object with a status of "ready" that includes a link to the existing "valid" authorization object.</t>
      <artwork><![CDATA[
   HTTP/1.1 201 Created
   Replay-Nonce: MYAuvOpaoIiywTezizk5vw
   Link: <https://example.com/acme/directory>;rel="index"
   Location: https://example.com/acme/order/TOlocE8rfgo

   {
     "status": "ready",
     "expires": "2016-01-05T14:09:07.99Z",

     "notBefore": "2016-01-01T00:00:00Z",
     "notAfter": "2016-01-08T00:00:00Z",

     "identifiers": [
       { "type": "dns", "value": "sub1.example.org" }
     ],

     "authorizations": [
       "https://example.com/acme/authz/PAniVnsZcis"
     ],

     "finalize": "https://example.com/acme/order/TOlocrfgo/finalize"
   }
]]></artwork>
      <t>The client can proceed to finalize the order and download the certificate for <tt>sub1.example.org</tt>.</t>
      <ul spacing="normal">
        <li>
          <t>STEP 3: The client places a newOrder for <tt>sub2.example.org</tt>  </t>
          <t>
The client sends a newOrder request to the server and includes the subdomain identifier. Note that the identifier is a subdomain of the parent domain that has been pre-authorised in step 1. The client does not need to include the "subdomains" field in the "identifier" object as it has already pre-authorized the parent domain.</t>
        </li>
      </ul>
      <artwork><![CDATA[
   POST /acme/new-order HTTP/1.1
   Host: example.com
   Content-Type: application/jose+json

   {
     "protected": base64url({
       "alg": "ES256",
       "kid": "https://example.com/acme/acct/evOfKhNU60wg",
       "nonce": "5XJ1L3lEkMG7tR6pA00clA",
       "url": "https://example.com/acme/new-order"
     }),
     "payload": base64url({
       "identifiers": [
         { "type": "dns", "value": "sub2.example.org" }
       ],
       "notBefore": "2016-01-01T00:04:00+04:00",
       "notAfter": "2016-01-08T00:04:00+04:00"
     }),
     "signature": "H6ZXtGjTZyUnPeKn...wEA4TklBdh3e454g"
   }
]]></artwork>
      <t>As an authorization object already exists for the parent domain, the server replies with an order object with a status of "ready" that includes a link to the existing "valid" authorization object.</t>
      <artwork><![CDATA[
   HTTP/1.1 201 Created
   Replay-Nonce: MYAuvOpaoIiywTezizk5vw
   Link: <https://example.com/acme/directory>;rel="index"
   Location: https://example.com/acme/order/TOlocE8rfgo

   {
     "status": "ready",
     "expires": "2016-01-05T14:09:07.99Z",

     "notBefore": "2016-01-01T00:00:00Z",
     "notAfter": "2016-01-08T00:00:00Z",

     "identifiers": [
       { "type": "dns", "value": "sub1.example.org" }
     ],

     "authorizations": [
       "https://example.com/acme/authz/PAniVnsZcis"
     ],

     "finalize": "https://example.com/acme/order/ROni7rdde/finalize"
   }
]]></artwork>
      <t>The client can proceed to finalize the order and download the certificate for <tt>sub2.example.org</tt>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="authorization-object-fields-registry">
        <name>Authorization Object Fields Registry</name>
        <t>The following field is added to the "ACME Authorization Object Fields" registry defined in ACME <xref target="RFC8555"/>.</t>
        <artwork><![CDATA[
    +------------+------------+--------------+-----------+
    | Field Name | Field Type | Configurable | Reference |
    +------------+------------+--------------+-----------+
    | subdomains | boolean    | false        | RFC XXXX  |
    +------------+------------+--------------+-----------+
]]></artwork>
      </section>
      <section anchor="directory-object-metadata-fields-registry">
        <name>Directory Object Metadata Fields Registry</name>
        <t>The following field is added to the "ACME Directory Metadata Fields" registry defined in ACME <xref target="RFC8555"/>.</t>
        <artwork><![CDATA[
     +------------+------------+-----------+
     | Field Name | Field Type | Reference |
     +------------+------------+-----------+
     | subdomains | boolean    | RFC XXXX  |
     +------------+------------+-----------+
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document documents enhancements to ACME <xref target="RFC8555"/> that optimize the protocol flows for issuance of certificates for subdomains. The underlying goal of ACME for Subdomains remains the same as that of ACME: managing certificates that attest to identifier/key bindings for these subdomains. Thus, ACME for Subdomains has the same two security goals as ACME:</t>
      <ol spacing="normal" type="1"><li>Only an entity that controls an identifier can get an authorization for that identifier</li>
        <li>Once authorized, an account key's authorizations cannot be improperly used by another account</li>
      </ol>
      <t>ACME for Subdomains makes no changes to:</t>
      <ul spacing="normal">
        <li>account or account key management</li>
        <li>ACME channel establishment, security mechanisms or threat model</li>
        <li>Validation channel establishment, security mechanisms or threat model</li>
      </ul>
      <t>Therefore, all Security Considerations in ACME in the following areas are equally applicable to ACME for Subdomains:</t>
      <ul spacing="normal">
        <li>Threat Model</li>
        <li>Integrity of Authorizations</li>
        <li>Denial-of-Service Considerations</li>
        <li>Server-Side Request Forgery</li>
        <li>CA Policy Considerations</li>
      </ul>
      <t>Some additional comments on ACME server policy are given in the following section.</t>
      <section anchor="acme-server-policy-considerations">
        <name>ACME Server Policy Considerations</name>
        <t>The ACME for Subdomains and the ACME specifications do not mandate any specific ACME server or CA policies, or any specific use cases for issuance of certificates. For example, an ACME server could be used:</t>
        <ul spacing="normal">
          <li>to issue Web PKI certificates where the ACME server must comply with CA/Browser Forum <xref target="CAB"/> Baseline Requirements.</li>
          <li>as a Private CA for issuance of certificates within an organisation. The organisation could enforce whatever policies they desire on the ACME server.</li>
          <li>for issuance of IoT device certificates. There are currently no IoT device certificate policies that are generally enforced across the industry. Organizations issuing IoT device certificates can enforce whatever policies they desire on the ACME server.</li>
        </ul>
        <t>ACME server policy could specify whether:</t>
        <ul spacing="normal">
          <li>issuance of subdomain certificates is allowed based on proof of ownership of a parent domain</li>
          <li>issuance of subdomain certificates is allowed, but only for a specific set of parent domains</li>
          <li>whether DNS based proof of ownership, or HTTP based proof of ownership, or both, are allowed</li>
        </ul>
        <t>ACME server policy specification is explicitly out of scope of this document.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <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">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="CAB" target="https://cabforum.org/wp-content/uploads/CA-Browser-Forum-BR-1.7.1.pdf">
          <front>
            <title>Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates</title>
            <author>
              <organization>CA/Browser Forum</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8555">
          <front>
            <title>Automatic Certificate Management Environment (ACME)</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes">
              <organization/>
            </author>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews">
              <organization/>
            </author>
            <author fullname="D. McCarney" initials="D." surname="McCarney">
              <organization/>
            </author>
            <author fullname="J. Kasten" initials="J." surname="Kasten">
              <organization/>
            </author>
            <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="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper">
              <organization/>
            </author>
            <author fullname="S. Santesson" initials="S." surname="Santesson">
              <organization/>
            </author>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="W. Polk" initials="W." surname="Polk">
              <organization/>
            </author>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet.  An overview of this approach and model is provided as an introduction.  The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms.  Standard certificate extensions are described and two Internet-specific extensions are defined.  A set of required certificate extensions is specified.  The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions.  An algorithm for X.509 certification path validation is described.  An ASN.1 module and examples are provided in the appendices.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC8499">
          <front>
            <title>DNS Terminology</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <author fullname="A. Sullivan" initials="A." surname="Sullivan">
              <organization/>
            </author>
            <author fullname="K. Fujiwara" initials="K." surname="Fujiwara">
              <organization/>
            </author>
            <date month="January" year="2019"/>
            <abstract>
              <t>The Domain Name System (DNS) is defined in literally dozens of different RFCs.  The terminology used by implementers and developers of DNS protocols, and by operators of DNS systems, has sometimes changed in the decades since the DNS was first defined.  This document gives current definitions for many of the terms used in the DNS in a single document.</t>
              <t>This document obsoletes RFC 7719 and updates RFC 2308.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="219"/>
          <seriesInfo name="RFC" value="8499"/>
          <seriesInfo name="DOI" value="10.17487/RFC8499"/>
        </reference>
        <reference anchor="RFC1034">
          <front>
            <title>Domain names - concepts and facilities</title>
            <author fullname="P.V. Mockapetris" initials="P.V." surname="Mockapetris">
              <organization/>
            </author>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised basic definition of The Domain Name System.  It obsoletes RFC-882.  This memo describes the domain style names and their used for host address look up and electronic mail forwarding.  It discusses the clients and servers in the domain name system and the protocol used between them.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1034"/>
          <seriesInfo name="DOI" value="10.17487/RFC1034"/>
        </reference>
        <reference anchor="RFC0819">
          <front>
            <title>The Domain Naming Convention for Internet User Applications</title>
            <author fullname="Z. Su" initials="Z." surname="Su">
              <organization/>
            </author>
            <author fullname="J. Postel" initials="J." surname="Postel">
              <organization/>
            </author>
            <date month="August" year="1982"/>
            <abstract>
              <t>This RFC is an attempt to clarify the generalization of the Domain Naming Convention, the Internet Naming Convention, and to explore the implications of its adoption for Internet name service and user applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="819"/>
          <seriesInfo name="DOI" value="10.17487/RFC0819"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
BRMrxbEUawAA

-->

</rfc>
