<?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.6.36 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-vanbrouwershaven-acme-auto-discovery-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="ACME Auto-Discovery">Auto-discovery mechanism for ACME client configuration</title>
    <seriesInfo name="Internet-Draft" value="draft-vanbrouwershaven-acme-auto-discovery-01"/>
    <author initials="P." surname="van Brouwershaven" fullname="Paul van Brouwershaven">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road – Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>paul.vanbrouwershaven@entrust.com</email>
      </address>
    </author>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road – Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <date year="2023" month="July" day="06"/>
    <area>SEC</area>
    <workgroup>ACME</workgroup>
    <keyword>ACME</keyword>
    <keyword>Auto-discovery</keyword>
    <keyword>CAA</keyword>
    <abstract>
      <?line 56?>

<t>A significant impediment to the widespread adoption of the Automated Certificate Management Environment (ACME) <xref target="RFC8555"/> is that ACME clients need to be pre-configured with the URL of the ACME server to be used. This often leaves domain owners at the mercy of their hosting provider as to which Certification Authorities (CAs) can be used. This specification provides a mechanism to bootstrap ACME client configuration from a domain's DNS CAA Resource Record <xref target="RFC8659"/>, thus giving control of which CA(s) to use back to the domain owner.</t>
      <t>Specifically, this document specifies two new extensions to the DNS CAA Resource Record: the "discovery" and "priority" parameters. Additionally, it registers the URI "/.well-known/acme" at which all compliant ACME servers will host their ACME directory object. By retrieving instructions for the ACME client from the authorized CA(s), this mechanism allows for the domain owner to configure multiple CAs in either load-balanced or fallback prioritizations which improves user preferences and increases diversity in certificate issuers.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="TODO"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-vanbrouwershaven-acme-auto-discovery/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        ACME Working Group mailing list (<eref target="mailto:acme@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/acme/about/"/>.
        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/vanbroup/acme-auto-discovery"/>.</t>
    </note>
  </front>
  <middle>
    <?line 63?>

<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?>

</section>
    <section anchor="sec-intro">
      <name>Introduction</name>
      <t>The ACME protocol <xref target="RFC8555"/> offers a powerful framework for automating the issuance and validation of certificates, eliminating the need for user intervention. This capability has significantly streamlined the process of obtaining certificates for servers and infrastructure software. However, in shared environments, where multiple entities coexist, users often face limitations in modifying ACME client configurations. Consequently, they are forced to rely on manual certificate management systems or default Certificate Authorities (CAs) preconfigured for the shared environment.</t>
      <t>This document introduces a mechanism to address the aforementioned challenge by enabling the automatic discovery of ACME client configurations for relevant domain names within a shared environment. The solution leverages the DNS Certification Authority Authorization (CAA) Resource Record <xref target="RFC8659"/> to identify the authorized Certification Authorities capable of issuing certificates for a specific domain name or set of domain names.</t>
      <t>By leveraging the power of CAA records, this mechanism empowers users with enhanced control and flexibility. Users can specify their preferences, choose from a broader range of certificate issuers, and even designate a backup Certification Authority.</t>
      <t>This approach facilitates a more diverse and adaptable certificate management process within shared and managed environments.
This document provides a detailed description of the proposed mechanism, along with its benefits and considerations.</t>
      <t>Additionally, it outlines the security aspects associated with the use of CAA records for ACME client configuration discovery. Finally, this document presents IANA considerations and references relevant normative and informative documents.</t>
      <t>It is important to note that this document is informational in nature and serves to provide guidance and recommendations to implementers and operators within the Internet community.</t>
    </section>
    <section anchor="caa-record">
      <name>CAA Record</name>
      <section anchor="extensions-to-the-caa-record">
        <name>Extensions to the CAA Record</name>
        <t>This document defines the "discovery" and "priority" CAA parameters in the context of ACME auto discovery.</t>
        <section anchor="the-discovery-parameter">
          <name>The "discovery" Parameter</name>
          <t>The "discovery" parameter is used to control the auto-discovery functionality of the record in the context of this document.
The value of this parameter, if specified, <bcp14>MUST</bcp14> be a Boolean, where "true" indicates that this record can be used for auto discovery, and "false" indicates that this record should not be used for auto discovery.</t>
          <t>When this parameter is not specified the client <bcp14>MUST</bcp14> assume that discovery is enabled.</t>
        </section>
        <section anchor="the-priority-parameter">
          <name>The "priority" Parameter</name>
          <t>The value of this parameter, if specified, <bcp14>MUST</bcp14> contain a positive integer, where the value "1" represents the highest priority, and subsequent values like "2", "3", and so on, indicate progressively lower priorities.</t>
          <t>In the case that this parameter is not specified, the entry will be considered to have a lower priority than all entries which specify any priority.</t>
        </section>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>This section shows some examples of how CAA records can be configured in the context of ACME auto discovery. CAA records are used to authorize Certification Authorities (CAs) to issue certificates for a specific domain name.</t>
        <t>A simple CAA record allows the issuance of certificates from a single designated CA. In the following example, the CAA record for the domain "example.com" authorizes the CA "ca.example" to issue certificates. However, it does not specify any backup CA. Consequently, if the authorized CA is unable to issue the requested certificate, the certificate issuance will fail.</t>
        <sourcecode type="dns-rr"><![CDATA[
example.com CAA 0 issue "ca.example"
]]></sourcecode>
        <t>By default, when multiple CAA records are present, the CAs are randomized to distribute the load. However, some users may have preferences regarding the order in which CAs are attempted for certificate issuance. To explicitly specify the order, the "priority" parameter can be used.</t>
        <t>In the next example, the domain "example.com" has two CAA records. The CAA record with "ca2.example" has a higher priority value of 1, indicating it should be attempted first. The CAA record with "ca1.example" has a lower priority value of 2, indicating it should be attempted second.</t>
        <sourcecode type="dns-rr"><![CDATA[
example.com CAA 0 issue "ca1.example; priority=2"
example.com CAA 0 issue "ca2.example; priority=1"
]]></sourcecode>
        <t>CAA records that do not explicitly specify a priority are automatically assigned the lowest priority. In cases where multiple CAA records have the same priority, the usage will be randomized.</t>
        <t>Consider the following example, where the domain "example.com" has three CAA records. The CAA record with "ca1.example" has no specified priority, and thus it is assigned the lowest priority. The CAA records with "ca2.example" and "ca3.example" both have a priority of 1. In this scenario, the ACME client will first attempt to obtain its configuration from either "ca2.example" or "ca3.example", selected at random. If both of those fail, it will fall back to "ca1.example". If all attempts fail, the certificate issuance will ultimately fail.</t>
        <sourcecode type="dns-rr"><![CDATA[
example.com CAA 0 issue "ca1.example"
example.com CAA 0 issue "ca2.example; priority=1"
example.com CAA 0 issue "ca3.example; priority=1"
]]></sourcecode>
        <t>Furthermore, it is possible to configure CAA records to indicate a preference for specific types of certificates. In the following example, the domain "example.com" prefers Extended Validation (EV) certificates issued by "ca1.example". If the issuance of an EV certificate fails, the ACME client will attempt to obtain any type of certificate from "ca1.example". If that also fails, it will then try to obtain any type of certificate from "ca2.example".</t>
        <sourcecode type="dns-rr"><![CDATA[
example.com CAA 0 issue "ca1.example; validationmethods=ca-ev"
example.com CAA 0 issue "ca1.example; priority=1"
example.com CAA 0 issue "ca2.example; priority=2"
]]></sourcecode>
        <t>Implementers and operators should carefully configure CAA records according to their specific requirements and considerations.</t>
        <t>// COMMENT: If a mechanism for enabling or disabling auto-discovery is required, users may need to configure their preferences accordingly. While enabling auto-discovery by default could promote adoption, it could lead to unexpected certificate issuance (see the security considerations). For instance, in the given example, if the default setting is set to false, only CA 2 will be used to retrieve the ACME client configuration.</t>
        <sourcecode type="dns-rr"><![CDATA[
example.com CAA 0 issue "ca1.example"
example.com CAA 0 issue "ca2.example; discovery=true"
]]></sourcecode>
      </section>
    </section>
    <section anchor="acme-client-configuration">
      <name>ACME Client Configuration</name>
      <t>To enable the ACME client to obtain the necessary configuration information for interacting with the authorized Certification Authority (CA)'s ACME server, a mechanism leveraging the well-known directory is proposed.</t>
      <t>The well-known directory is a standardized location within the domain's web server where clients can discover specific resources or configurations. In the context of ACME client configuration retrieval, a copy of the ACME directory object or a redirect to it is placed in the well-known directory of the CA's domain, which is specified as a constraint in the CAA record. This allows the ACME client to conveniently retrieve the required configuration.</t>
      <t>For instance, when the CAA record restricts certificate issuance to the CA "ca.example" for the domain "example.com", the ACME client retrieves the ACME directory object as specified in Section 7.1.1 of ACME <xref target="RFC8555"/> from the URL "https://ca.example/.well-known/acme".</t>
      <t>While an alternative consideration was to include the ACME server address directly as an attribute in the CAA record, it was determined that this approach could introduce clutter and significantly increase the size of the record. Additionally, a rigid binding between the CAA record and the ACME server address may present challenges if the CA needs to change its server address in the future.</t>
      <t>Thus, the approach outlined in this document, utilizing the well-known directory for ACME client configuration retrieval, offers flexibility for CAs to manage and update their ACME server addresses while maintaining a concise and focused CAA record.
It is important for implementers and operators to ensure the availability and accessibility of the ACME directory object within the well-known directory to facilitate successful ACME client configuration retrieval.</t>
    </section>
    <section anchor="sec-behavior">
      <name>ACME Client Behavior</name>
      <t>The process looks as follows:</t>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="560" viewBox="0 0 560 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
            <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
            <path d="M 80,136 L 80,432" fill="none" stroke="black"/>
            <path d="M 96,128 L 96,304" fill="none" stroke="black"/>
            <path d="M 120,32 L 120,128" fill="none" stroke="black"/>
            <path d="M 208,112 L 208,176" fill="none" stroke="black"/>
            <path d="M 336,32 L 336,96" fill="none" stroke="black"/>
            <path d="M 336,144 L 336,240" fill="none" stroke="black"/>
            <path d="M 336,272 L 336,352" fill="none" stroke="black"/>
            <path d="M 336,400 L 336,464" fill="none" stroke="black"/>
            <path d="M 440,96 L 440,136" fill="none" stroke="black"/>
            <path d="M 440,352 L 440,392" fill="none" stroke="black"/>
            <path d="M 552,32 L 552,96" fill="none" stroke="black"/>
            <path d="M 552,144 L 552,240" fill="none" stroke="black"/>
            <path d="M 552,272 L 552,352" fill="none" stroke="black"/>
            <path d="M 552,400 L 552,464" fill="none" stroke="black"/>
            <path d="M 8,32 L 120,32" fill="none" stroke="black"/>
            <path d="M 336,32 L 552,32" fill="none" stroke="black"/>
            <path d="M 120,80 L 328,80" fill="none" stroke="black"/>
            <path d="M 336,96 L 552,96" fill="none" stroke="black"/>
            <path d="M 128,112 L 208,112" fill="none" stroke="black"/>
            <path d="M 8,128 L 120,128" fill="none" stroke="black"/>
            <path d="M 336,144 L 552,144" fill="none" stroke="black"/>
            <path d="M 208,176 L 336,176" fill="none" stroke="black"/>
            <path d="M 336,240 L 552,240" fill="none" stroke="black"/>
            <path d="M 336,272 L 552,272" fill="none" stroke="black"/>
            <path d="M 96,304 L 328,304" fill="none" stroke="black"/>
            <path d="M 336,352 L 552,352" fill="none" stroke="black"/>
            <path d="M 336,400 L 552,400" fill="none" stroke="black"/>
            <path d="M 80,432 L 336,432" fill="none" stroke="black"/>
            <path d="M 336,464 L 552,464" fill="none" stroke="black"/>
            <path d="M 496,320 L 504,304" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="448,392 436,386.4 436,397.6" fill="black" transform="rotate(90,440,392)"/>
            <polygon class="arrowhead" points="448,136 436,130.4 436,141.6" fill="black" transform="rotate(90,440,136)"/>
            <polygon class="arrowhead" points="336,304 324,298.4 324,309.6" fill="black" transform="rotate(0,328,304)"/>
            <polygon class="arrowhead" points="336,80 324,74.4 324,85.6" fill="black" transform="rotate(0,328,80)"/>
            <polygon class="arrowhead" points="136,112 124,106.4 124,117.6" fill="black" transform="rotate(180,128,112)"/>
            <polygon class="arrowhead" points="88,136 76,130.4 76,141.6" fill="black" transform="rotate(270,80,136)"/>
            <g class="text">
              <text x="148" y="68">1.</text>
              <text x="176" y="68">DNS</text>
              <text x="220" y="68">Lookup</text>
              <text x="272" y="68">(CAA)</text>
              <text x="408" y="68">DNS</text>
              <text x="460" y="68">Resolver</text>
              <text x="36" y="84">ACME</text>
              <text x="84" y="84">Client</text>
              <text x="232" y="164">DNS</text>
              <text x="284" y="164">Response</text>
              <text x="392" y="164">example.com</text>
              <text x="456" y="164">CAA</text>
              <text x="376" y="180">Record:</text>
              <text x="148" y="212">2.</text>
              <text x="188" y="212">Select</text>
              <text x="244" y="212">issuer</text>
              <text x="292" y="212">(CA)</text>
              <text x="392" y="212">example.com</text>
              <text x="184" y="228">based</text>
              <text x="220" y="228">on</text>
              <text x="268" y="228">priority</text>
              <text x="360" y="228">CAA</text>
              <text x="384" y="228">0</text>
              <text x="416" y="228">issue</text>
              <text x="488" y="228">"ca.example</text>
              <text x="148" y="292">3.</text>
              <text x="192" y="292">Connect</text>
              <text x="252" y="292">issuer</text>
              <text x="300" y="292">(CA)</text>
              <text x="428" y="308">https://example.ca</text>
              <text x="448" y="324">.well-known</text>
              <text x="516" y="324">acme</text>
              <text x="484" y="372">Redirect</text>
              <text x="460" y="388">or</text>
              <text x="496" y="388">alias</text>
              <text x="140" y="420">ACME</text>
              <text x="200" y="420">Directory</text>
              <text x="268" y="420">Object</text>
              <text x="444" y="436">https://acme.ca.example/</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
+-------------+                          +--------------------------+
|             |                          |                          |
|             |  1. DNS Lookup (CAA)     |       DNS Resolver       |
| ACME Client +------------------------->+                          |
|             |                          +------------+-------------+
|             |<---------+                            |
+----------+--+          |                            v
         ^ |             |               +--------------------------+
         | |             | DNS Response  | example.com CAA          |
         | |             +---------------+ Record:                  |
         | |                             |                          |
         | |     2. Select issuer (CA)   | example.com              |
         | |        based on priority    | CAA 0 issue "ca.example  |
         | |                             +--------------------------+
         | |
         | |                             +--------------------------+
         | |     3. Connect issuer (CA)  |                          |
         | +---------------------------->+  https://example.ca/     |
         |                               |        .well-known/acme  |
         |                               |                          |
         |                               +------------+-------------+
         |                                            | Redirect
         |                                            v or alias
         |                               +--------------------------+
         |     ACME Directory Object     |                          |
         +-------------------------------+ https://acme.ca.example/ |
                                         |                          |
                                         +--------------------------+
]]></artwork>
      </artset>
      <ol spacing="normal" type="1"><li>The ACME client initiates a DNS lookup to retrieve the CAA record(s) according to <xref target="RFC8659"/>.
  a. The DNS resolver responds with the CAA record for each domain, specifying the authorized CAs capable of issuing certificates, along with their priorities and other optional parameters.</li>
        <li>The ACME client analyzes the CAA records for the domain and selects the CA with the highest priority.</li>
        <li>The ACME client will download the ACME directory from the well-known location of the issuer-domain-name of the selected CA (https://[issuer-domain-name]/.well-known/acme)</li>
        <li>If the directory object indicates that an External Account Binding is required, but this is not configured on the ACME client, the client will try to determine an alternative common CA in step 2.
  a. If no alternative CA can be found, the process with end with a failure and the user will be informed.</li>
        <li>The ACME client proceeds with the ACME challenge process, where it interacts with the ACME server to complete the required validation steps.</li>
        <li>Upon successful completion of the challenge, the ACME client sends a finalize request to the ACME server, indicating the completion of the certificate issuance process.</li>
        <li>The ACME server processes the request and issues the certificate.</li>
        <li>The ACME client receives the issued certificate from the ACME server.</li>
        <li>The certificate is ready for use by the ACME client for the specified domain(s).</li>
      </ol>
      <t>Prior to establishing a connection with the default ACME server or a pool of ACME servers, the ACME client verifies the presence of any configured CA Authorization records (CAA) as defined in <xref target="RFC8659"/>. If a CAA record is found, the ACME client will attempt to obtain a certificate from the CA with the highest priority. If the certificate issuance attempt fails, the client will proceed to lower-priority CAs in an attempt to obtain the certificate.</t>
      <t>In the event of a failed attempt to obtain a certificate from a particular CA, the ACME client employs a retry mechanism to ensure successful certificate acquisition. However, in cases where certain CAs are known to be temporarily unavailable, the ACME client <bcp14>MAY</bcp14> choose to ignore those CAs for a limited period of time. By temporarily excluding unresponsive CAs from the issuance process, the client can optimize its certificate acquisition strategy and enhance overall efficiency. This approach helps mitigate potential delays caused by unresponsive CAs and allows the client to focus on viable options for obtaining the required certificate.</t>
      <t>ACME clients <bcp14>SHOULD</bcp14> notify the user if the enrollment of a certificate from a specific CA fails multiple times, even if the client successfully obtains a certificate from an alternative CA. This notification is essential to ensure that users are promptly informed about recurring enrollment failures, allowing them to take appropriate measures. By providing such notifications, clients enable users to assess and address any underlying issues, seek alternative solutions, or make informed decisions regarding their certificate management processes.</t>
      <t>In order to promote the adoption of ACME in Enterprise environments, it is crucial for implementers and operators to recognize the significance of External Account Bindings. The section dedicated to External Account Bindings provides valuable information and guidelines for effectively incorporating this feature.</t>
      <section anchor="certificates-with-multiple-domain-names">
        <name>Certificates with multiple domain names</name>
        <t>When the ACME client initiates a certificate request for multiple domain names, it is required to check the CAA records for each domain. The purpose of this check is to identify a Certification Authority (CA) that is authorized by all the domain names intended to be included in the certificate. If, during the evaluation of CAA records, no common CA can be identified that satisfies the authorization requirements of all the domain names, the certificate issuance process will fail.</t>
        <t>To mitigate the risk of encountering failures in the certificate issuance process due to incompatible CAA records, it is crucial to ensure that certificates only include domain names that are under the control of the same entity. By maintaining a consistent ownership and control of the domain names included in a certificate, the likelihood of encountering authorization conflicts among CAA records is minimized. This practice promotes a more streamlined and reliable certificate issuance process, reducing the potential for errors and ensuring that the certificate accurately represents the domains controlled by a single entity.</t>
        <t>The process with multiple domain names looks as follows:
1. The ACME client identifies the list of domain names for which a certificate is requested.
2. For each domain in the list, the ACME client initiates a DNS lookup to retrieve the CAA record(s) according to <xref target="RFC8659"/>.
  a. The DNS resolver responds with the CAA record for each domain, specifying the authorized CAs capable of issuing certificates, along with their priorities and other optional parameters.
3. The ACME client analyzes the CAA records for all domains to identify a common CA that is authorized by all included domains and has the highest priority.
  a. If a common CA is found, the ACME client proceeds with step 4.
  b. If no common CA is found, the ACME client tries to find a compromise using as few as possible domains with a lower priority.
  c. If no compromise can be found, the process will end with a failure and the user will be informed.
4. The ACME client will download the ACME directory from the well-known location of the issuer-domain-name of the selected common CA (https://[issuer-domain-name]/.well-known/acme)
5. If an External Account Binding is required but not configured the ACME client will try to determine an alternative common CA in step 3.
  a. If no alternative CA can be found, the process with end with a failure and the user will be informed.
6. The ACME client proceeds with the ACME challenge process, where it interacts with the ACME server to complete the required validation steps.
7. Upon successful completion of the challenge, the ACME client sends a finalize request to the ACME server, indicating the completion of the certificate issuance process.
8. The ACME server processes the request and issues the certificate.
9. The ACME client receives the issued certificate from the ACME server.
10. The certificate is ready for use by the ACME client for the specified domain(s).</t>
      </section>
    </section>
    <section anchor="external-account-binding">
      <name>External Account Binding</name>
      <t>Clients <bcp14>SHOULD</bcp14> provide users with the ability to configure and utilize external account bindings per CA or ACME server, as it offers enhanced security and flexibility in managing the certificate provisioning process.</t>
      <t>External account bindings are not only crucial for users seeking to provision certificates with stronger authentication requirements such as OV, EV, and QWAC, but they can also be applicable to Domain Validation (DV) certificates covered by a commercial agreement. By offering the configuration option for external account bindings, clients enable users to establish a secure association between their ACME accounts and external accounts, facilitating streamlined and authenticated certificate issuance processes. This flexibility accommodates a wide range of certificate types and use cases, ensuring that users can provision certificates with the appropriate level of authentication based on their specific requirements, whether they be DV certificates covered by a commercial agreement or certificates with higher levels of validation. Therefore, it is essential for clients to implement the external account binding configuration option to support the diverse needs of users in obtaining certificates with varying authentication levels.</t>
      <t>It is crucial for Certification Authorities (CAs) to carefully consider the internal account binding mechanisms described in this document. This is especially critical given the current lack of widespread support for external account bindings in user interfaces, with only a few command line utilities offering such functionality. By recognizing and implementing the internal account binding approach, CAs can provide a viable alternative for users who may not have access to or be familiar with external account binding options. This will help ensure a seamless and secure account linkage process, even in situations where the availability of external account binding configurations is limited.</t>
      <section anchor="internal-account-binding-using-domain-control-validation">
        <name>Internal Account Binding using Domain Control Validation</name>
        <t>In addition to the external account binding mechanism, an alternative approach can be implemented by the CAs that offers distinct advantages, particularly in cases where service providers may not expose the account binding configuration options to their users. This alternative method leverages domain control validation as the initial step in the process and subsequently pauses to await confirmation from the account holder regarding the account binding. The email address associated with the ACME account can be utilized for differentiating between multiple Certification Authority (CA) accounts holding the same domain name.</t>
        <t>The process to establish an internal account binding would be as follows:</t>
        <ol spacing="normal" type="1"><li>The user adds the domain name to their Certification Authority (CA) account and completes the domain control verification process within this account.</li>
          <li>The user initiates the ACME process for certificate issuance or a new authorization.</li>
          <li>The ACME client validates domain control for the requested domain.</li>
          <li>Upon successful domain control validation the CA does not mark the authorizations as completed but awaits the completion of the account binding.</li>
          <li>The CA, having confirmed domain control, uses the provided email address associated with the ACME account to distinguish between different CA accounts that have confirmed control over the same domain name.</li>
          <li>The account holder receives a notification or prompt and confirms the account binding within the CA's system.</li>
          <li>Once the account binding is confirmed, the CA marks the ACME authorization as completed and the ACME client proceeds with the remaining steps of the ACME process, such as finalizing the certificate issuance.</li>
        </ol>
        <t>It is important to note that before the ACME process can start, the domain name must be added to the CA account and the domain control validation process must be successfully completed. This ensures that the domain ownership is verified for both accounts before proceeding with the account binding.</t>
      </section>
      <section anchor="internal-account-binding-using-email-address">
        <name>Internal Account Binding using Email Address</name>
        <t>When ACME clients provide the email address associated with the user's account during the creation of a new account, Certification Authorities (CAs) can utilize this email address to establish an internal account binding between the ACME account and the corresponding customer account within their internal systems. This approach offers an alternative method for establishing the account linkage, particularly in cases where the ACME integration's user interface does not provide explicit external account binding configuration options.</t>
        <t>However, it is crucial to acknowledge that this internal account binding mechanism introduces potential vulnerabilities, particularly in relation to phishing attacks. It is imperative to exercise caution when utilizing this mechanism since the email address associated with the ACME account is not verified, and the account binding request can be initiated by any party. Careful consideration should be given to the security implications of relying solely on the email address for establishing the account linkage.</t>
      </section>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <section anchor="well-known-uri-for-the-acme-directory">
        <name>Well-Known URI for the ACME Directory</name>
        <t>The following value has been registered in the "Well-Known URIs" registry (using the template from <xref target="RFC5785"/>):</t>
        <artwork><![CDATA[
URI suffix: acme
Change controller: IETF
Specification document(s): RFC XXXX, Section Y.Z
Related information: N/A
]]></artwork>
        <t>RFC EDITOR: Please replace XXXX above with the RFC number assigned to this document</t>
        <t>// TODO: add CAA attributes (not sure if these can be registered)</t>
        <!-- End of IANA Considerations section -->

</section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="risks-with-auto-discovery-of-authorized-cas">
        <name>Risks with Auto-Discovery of Authorized CAs</name>
        <t>The mechanism described in this document relies on the DNS Certification Authority Authorization (CAA) Resource Record <xref target="RFC8659"/> to determine the authorized Certification Authorities (CAs) capable of issuing certificates for a given domain name(s). However, there are potential risks associated with the automatic provisioning of certificates without an explicit indication from the user.</t>
        <section anchor="unexpected-certificate-issuance">
          <name>Unexpected Certificate Issuance</name>
          <t>Where the issuance of certificates is currently restricted through CAA records and certificates are provisioned through alternative means (i.e., manual or via a proprietary API) certificates can unexpectedly be replaced with a similar certificate or a certificate of a different type (e.g., DV versus EV) if the ACME client supports this new mechanism.</t>
          <t>Its recommended that users who which to obtain certificates attesting to more than domain validation (DV) control, restrict the validation method using a CA specific “validationmethods” CAA parameter value (e.g., “ca-ov”, “ca-ev”, “ca-qwac”) as specified by <xref target="RFC8657"/>.</t>
        </section>
        <section anchor="issuance-by-the-wrong-authorized-ca">
          <name>Issuance by the 'wrong' authorized CA</name>
          <t>In scenarios where a domain name authorizes multiple CAs without specifying a weight or preference attribute, there is a risk that the ACME client may unexpectedly request a certificate from one of the authorized CAs that was only included as backup.
To mitigate this risk, it is recommended that users who have multiple CAA records explicitly configure the CAA record to include a weight or preference attribute to indicate their desired CA for certificate issuance.</t>
          <t>Additionally, ACME clients should provide clear visibility and feedback to users regarding the CA from which certificates will be obtained, ensuring that it aligns with their expectations.</t>
        </section>
      </section>
      <section anchor="malicious-acme-servers">
        <name>Malicious ACME Servers</name>
        <t>One potential security risk associated with the mechanism defined in this document is the possibility of domain owners placing links to malicious ACME servers into their DNS CAA Resource Records in order to attack the infrastructure of hosting providers. Malicious actors could exploit vulnerabilities in the ACME client implementation or inject malicious code, potentially leading to unauthorized access or remote code execution on the client's system.</t>
        <t>To minimize this risk, ACME clients must be written with a cautious and security-conscious approach when interacting with ACME servers. It is crucial not to blindly trust servers to behave securely and in accordance with the ACME protocol.</t>
      </section>
      <section anchor="terms-of-service-and-acceptance">
        <name>Terms of Service and Acceptance</name>
        <t>The terms of service associated with different CAs can vary, and it is important to consider how these terms are handled within the context of auto-discovery.</t>
        <section anchor="implicit-acceptance-of-terms-of-service">
          <name>Implicit Acceptance of Terms of Service</name>
          <t>As the ACME client is not explicitly controlled by the user in a shared environment, the user's explicit approval of the terms of service presented by the CA becomes challenging. In the absence of a direct user interaction with the ACME client, it is assumed that the user accepts the terms of service by explicitly configuring the CAA record to authorize the CA.</t>
          <t>ACME clients are strongly encouraged to display the relevant terms of service for the obtained certificates to ensure users have visibility into the associated obligations and restrictions. This helps users make informed decisions about their certificate management and ensures compliance with the terms of service set by the authorized CA.</t>
        </section>
        <section anchor="acceptance-through-caa-attribute">
          <name>Acceptance Through CAA Attribute</name>
          <t>One potential enhancement to address the explicit acceptance of terms of service is the inclusion of a CAA attribute called "termsOfServiceAgreed". This attribute would provide a direct mechanism for users to indicate their agreement to the terms of service.</t>
          <t>However, it is important to consider the trade-offs associated with adding this type of data to the CAA record. The inclusion of additional attributes can be perceived as clutter and may increase the complexity of configuring the CAA record. Therefore, the authors of this document recommend relying on the implicit acceptance of the terms of service.</t>
          <t>By configuring the CAA record to authorize a specific CA, users implicitly indicate their acceptance of the associated terms of service. This approach strikes a balance between simplicity and compliance with the CA's requirements. It is crucial for ACME clients to display the relevant terms of service for the obtained certificates, ensuring that users have visibility and can make informed decisions regarding their certificate management.</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC8555">
          <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">
          <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="RFC2119">
          <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">
          <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC8657">
          <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="RFC5785">
          <front>
            <title>Defining Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Hammer-Lahav" initials="E." surname="Hammer-Lahav"/>
            <date month="April" year="2010"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5785"/>
          <seriesInfo name="DOI" value="10.17487/RFC5785"/>
        </reference>
      </references>
    </references>
    <?line 353?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+Vd63Icx3X+v0/RBn+IjIClQIq6IJJsEIRslEVBJikpiqxU
9c70YjucnVlPzwBcy3LpHfInqUqq8ix5FD1Jzq1vM7NLULFzqbDKFrA705fT
5/KdSx8cHR3NOttV5kQdnPZdc1RaVzTXpt2qtSlWurZurZZNq07Pnp6rorKm
7lTR1Et71be6s019MNOLRWuucQB8hkZ54kc5mBW6M1dNuz1Rtl42s1nZFLVe
w3xlq5fd0bWuF23T35jWrfS1qY90sTZHOlvK0TvHM9cv1tY5mLDbbuDti/MX
nyp1R+nKNTC1rUuzMfB/dXdwqA4uTh/Df2DZBxfPXnx6MKv79cK0J7MSFnMy
g/U7U7venaiu7c0M1v5wplujT9Tz87PZTdO+vII1bU5o17OXZgsflSczdcQf
4H+zBeInZ6enM1h/D+Mrlb6uFK/4axjW1lfq1/gdfLrWtjpRuN1fWdMt5017
BZ/qtlidqFXXbdzJ/fuwXt21unhp2rl/6P7N1X18675eNH13H2ez3apfnCih
5eb+BA3hsQo277oT9eLyyeVsBl+vmhYXewT/w3+2BoJ8Mcdh1OP0TOR7PrYv
dF/tfASWd6LOa6Cq69Rndm07U8pXnkvkW/nUda0xsKYHj955Rz1vKl2XnXrW
6FL99OM/qec9DKCO33lHni5sB3x02XX6Rh+qy7rTrW38d00PI8PXZ7rWpQ6f
lrDm3z74rXr460fymWHKb2Aj8yH7/crw8uZFsx6S5ulcXfa1A17oVhlJntqX
ZvTV/yVSrGED88ZvIKPBrG7aNQj6NfH1s0/PPnj06JH/8b1HH57MZijXg2fe
e/S+/Pjo/Q/g8dnR0RFs2yEvd7PZqXL2qrZLW2hQJ3a9MaVdo2bpGtWtjLqx
pXEbEMhS6bLZoJpRzZK+QsGDuUypzkzb0RBAl6ew0StDQ5zX17Ztavr5Lgrg
PfWtLPs7ZR0MortUmzlVGxgNZl4YBXMeee0GH96AYNGsXz77LCwAX3WmBaGS
l3pnyrl6sYLBm2VnalUZYCWnSliohYXf1MBdCmbF19emLbYylm3VqnEdKoVN
21zDplulHY56s7LFKtkhEuCUBNZ2Foa+e3bq7img3mB+tzFFfEMGhbkTZY5r
bpoOj2KzW6urZdus4T3ew1tOPfn8Oao49cy4pm8LAz8UoBSZtsAH3x3CjnoH
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
IPF89p8ycdU0yXQAAA==

-->

</rfc>
