Change:
URL URL
Looks good to me. I didn't necessarily expect the bit about de-provisioning a challenge response to need a SHOULD, but I don't object.
Thanks NAME With approval from co-author, chair, and AD, I guess it's safe to merge :)
So the de-provision isn't just editorial, but it is only a SHOULD. All of these look fine to me. LGTM :rocket: Thanks NAME Ben Campbell has entered the following ballot position for draft-ietf-acme-acme-14: Yes When responding, please keep the subject line intact and reply to all email addresses included in the To and CC lines. (Feel free to cut this introductory paragraph, however.) Please refer to URL for more information about IESG DISCUSS and COMMENT positions. The document, along with other ballot positions, can be found here: URL COMMENT: Thanks for the work on this; I'm happy to see it nearing completion. I have a few minor comments: Substantive : "The ACME server acts as an HTTP and HTTPS client when validating challenges via HTTP." Section 8.3 says that HTTP challenge validation cannot use HTTPS. Also, §6 says that all interactions between the client and server use HTTPS. I recognize challenge validation is not really an interaction between the client and server, but I suspect some readers may be confused. "ACME servers SHOULD follow the recommendations of [RFC7525] when configuring their TLS implementations." Why not MUST? : "... and the server MUST reject new-account requests that do not have the "termsOfServiceAgreed" field set to "true". " The MUST seems overly strong there; is there no room for local policy? Would it be completely insane to offer optional ToS? (For example, maybe one gets some additional service for agreeing to terms, but still gets a cert either way.) "Clients SHOULD NOT automatically agree to terms by default." Why not MUST NOT? : Is there a lifetime after which a provisioned HTTP resource in response to a challenge should go away? Editorial and Nits , first paragraph: Is the "user" the person requesting services from the ACME server? : " It is RECOMMENDED that the server perform DNS queries and make HTTP connections from various network perspectives..." : " The inner JWS is NOT REQUIRED to have a "nonce" header parameter." "NOT REQUIRED" is not among the terms defined by 2119/8174. I suspect this is intended as a statement of fact, and should therefore not be capitalized. I'm not sure what that means. Given that this uses an upper-case RECOMMENDED, can it be stated more concretely? : Is this section also to be removed? Thanks for the work on this; I'm happy to see it nearing completion. I have a few minor comments:Section 8.3 says that HTTP challenge validation cannot use HTTPS. Also, §6 says that all interactions between the client and server use HTTPS. I recognize challenge validation is not really an interaction between the client and server, but I suspect some readers may be confused. Why not MUST? The MUST seems overly strong there; is there no room for local policy? Would it be completely insane to offer optional ToS? (For example, maybe one gets some additional service for agreeing to terms, but still gets a cert either way.) Why not MUST NOT? §2, first paragraph: Is the "user" the person requesting services from the ACME server? "NOT REQUIRED" is not among the terms defined by 2119/8174. I suspect this is intended as a statement of fact, and should therefore not be capitalized. I'm not sure what that means. Given that this uses an upper-case RECOMMENDED, can it be stated more concretely? §13.3: Is this section also to be removed?

Discussion:
2. The guiding use case for ACME is obtaining certificates for websites <del> (HTTPS RFC2818).  In this case, the user's web server is intended to speak for one or more domains, and the process of certificate issuance is intended to verify that this web server actually speaks for the domain(s). </del> <ins> (HTTPS RFC2818).  In this case, a web server is intended to speak for one or more domains, and the process of certificate issuance is intended to verify that this web server actually speaks for the domain(s). </ins> DV certificate validation commonly checks claims about properties related to control of a domain name - properties that can be observed

In most HTTPS transactions used by ACME, the ACME client is the HTTPS client and the ACME server is the HTTPS server.  The ACME server acts <del> as an HTTP and HTTPS client when validating challenges via HTTP. </del> <ins> as a client when validating challenges: an HTTP client when validating an 'http-01' challenge, a DNS client with 'dns-01', etc. </ins> ACME servers SHOULD follow the recommendations of RFC7525 when configuring their TLS implementations.  ACME servers that support TLS

using a supported scheme but an invalid value then the server MUST return an error of type "invalidContact". <del> If the server wishes to present the client with terms under which the ACME service is to be used, it MUST indicate the URL where such terms can be accessed in the "termsOfService" subfield of the "meta" field in the directory object, and the server MUST reject new-account requests that do not have the "termsOfServiceAgreed" field set to "true".  Clients SHOULD NOT automatically agree to terms by default. Rather, they SHOULD require some user interaction for agreement to terms. </del> <ins> If the server wishes to require the client to agree to terms under which the ACME service is to be used, it MUST indicate the URL where such terms can be accessed in the "termsOfService" subfield of the "meta" field in the directory object, and the server MUST reject new- account requests that do not have the "termsOfServiceAgreed" field set to "true".  Clients SHOULD NOT automatically agree to terms by default.  Rather, they SHOULD require some user interaction for agreement to terms. </ins> The server creates an account and stores the public key used to verify the JWS (i.e., the "jwk" element of the JWS header) to

The inner JWS MUST have the same "url" header parameter as the outer JWS. <del> The inner JWS is NOT REQUIRED to have a "nonce" header parameter. The server MUST ignore any value provided for the "nonce" header parameter. </del> <ins> The inner JWS MAY omit the "nonce" header parameter.  The server MUST ignore any value provided for the "nonce" header parameter. </ins> This transaction has signatures from both the old and new keys so that the server can verify that the holders of the two keys both

successful.  If the request fails, or the body does not pass these checks, then it has failed. <ins> The client SHOULD de-provision the resource provisioned for this challenge once the challenge is complete, i.e., once the "status" field of the challenge has the value "valid" or "invalid". </ins> 8.4. When the identifier being validated is a domain name, the client can

successful.  If no DNS record is found, or DNS record and response payload do not pass these checks, then the validation fails. <ins> The client SHOULD de-provision the resource record(s) provisioned for this challenge once the challenge is complete, i.e., once the "status" field of the challenge has the value "valid" or "invalid". </ins> 9. 9.1.

validation response for his own account key.  The risks due to hosting providers noted above are a particular case. <del> It is RECOMMENDED that the server perform DNS queries and make HTTP connections from various network perspectives, in order to make MitM attacks harder. </del> <ins> Attackers can also exploit vulnerabilities in Internet routing protocols to gain access to the validation channel (see, e.g., RFC7132).  In order to make such attacks more difficult, it is RECOMMENDED that the server perform DNS queries and make HTTP connections from multiple points in the network.  Since routing attacks are often localized or dependent on the position of the attacker, forcing the attacker to attack multiple points (the server's validation vantage points) or a specific point (the DNS / HTTP server) makes it more difficult to subvert ACME validation using attacks on routing. </ins> 10.3.