In the RFC 7.4. Applying for Certificate Issuance
RFC 8555 - Automatic Certificate Management Environment (ACME) a "Location" header related to the order appears several times:
after 'new order' page 46: RFC 8555 - Automatic Certificate Management Environment (ACME)
HTTP/1.1 201 Created
Replay-Nonce: MYAuvOpaoIiywTezizk5vw
Link: https://example.com/acme/directory;rel="index"
Location: https://example.com/acme/order/TOlocE8rfgo
After finalize, page 49: RFC 8555 - Automatic Certificate Management Environment (ACME)
HTTP/1.1 200 OK
Replay-Nonce: CGf81JWBsq8QyIgPCi9Q9X
Link: https://example.com/acme/directory;rel="index"
Location: https://example.com/acme/order/TOlocE8rfgo
The RFC is very explicit about the Location field when it refers to new accounts. Page 36 highlights:
The server returns
this account object in a 201 (Created) response, with the account URL
in a Location header field.
and:
If the server receives a newAccount request signed with a key for
which it already has an account registered with the provided account
key, then it MUST return a response with status code 200 (OK) and
provide the URL of that account in the Location header field.
This also comes up with pre-authorizations.
The RFC is less explicit about this when it comes to orders.
On page 22 (RFC 8555 - Automatic Certificate Management Environment (ACME)) there is the following text:
The "->" is a mnemonic for a Location
header field pointing to a created resource
and this appears on the table:
| Submit order | POST newOrder | 201 -> order |
However, this table illustrates a "typical sequence of events", and not any sort of requirement.
So, this is more of LetsEncrypt question for me:
- is the "Location" header of an new order the order's url in Boulder/LetsEncrypt?
- can we rely on this?
It seems to do this, and the RFC suggests this is intended, but there is nothing definitive that I can find.
Thanks!