Some errors encountered in getting the order list in web client development, where am I wrong?

I am developing a web client and have a small problem in development. When I get the list of account orders, I follow the documentation https://tools.ietf.org/id/draft-ietf.ac/acme-10. Html#directory 7.1.2.1. The instructions in the Orders List are requested:
HTTP/1.1 200 OK
Content-Type: application/json
Link: https://example.com/acme/acct/1/orders?cursor=2, rel=“next”
But I couldn’t get the order list, but I got an error response:
{
“type”: “urn:ietf:params:acme:error:malformed”,
“detail”: “Method not allowed”,
“status”: 405
}
I got it after changing to the post method:
{
“type”: “urn:ietf:params:acme:error:malformed”,
“detail”: “No Content-Type header on POST. Content-Type must be “application/jose+json””,
“status”: 415
}
When I continued to join the header: “Content-Type: application/jose+json” I got it again:
{
“type”: “urn:ietf:params:acme:error:malformed”,
“detail”: “Parse error reading JWS”,
“status”: 400
}
In the end I joined jws, content:
{‘nonce’: ‘6sjSjpfsgWOZvS37zsQ85_y2GpLTq85vE_H7znY-MSU’, ‘alg’: ‘RS256’, ‘url’: ‘https://acme-staging-v02.api.letsencrypt.org/acme/acct/1/orders’, ’ Kid’: ‘https://acme-staging-v02.api.letsencrypt.org/acme/acct/9570341’}
What you get is:
u’{
“type”: “urn:ietf:params:acme:error:malformed”,
“detail”: “Account ID must be an integer”,
“status”: 400
}’
with:
{
“type”: “urn:ietf:params:acme:error:malformed”,
“detail”: "JWS header parameter ‘url’ is incorrect. Expected “https://acme-staging-v02.api.letsencrypt.org/acme/acct/1/orders%3Fcursor=2%3E,rel=%22next %2522” got “https://acme-staging-v02.api.letsencrypt.org/acme/acct/1/orders?cursor=2\u003e,rel=\“next\”” ",
“status”: 400
}
Also in another document https://tools.ietf.org/html/rfc8555#section-6.7.1
7.1.2.1. Orders List
HTTP/1.1 200 OK
Content-Type: application/json
Link: https://example.com/acme/directory;rel=“index”
Link: https://example.com/acme/orders/rzGoeA?cursor=2;rel=“next”
POST-as-GET request
I got 404 page not found

Boulder (the server software used by Let’s Encrypt) does not return an orders field in the account data. So how are you trying to get the list of orders? The URLs in the RFC are examples, and in general different from what is used by ACME servers.

Also, please note https://github.com/letsencrypt/boulder/blob/master/docs/acme-divergences.md and in particular for this issue https://github.com/letsencrypt/boulder/issues/3335.

3 Likes

Ok, I understand, I have skipped this step, taken another way, and abandoned the order list function.

You shouldn't reference ACME draft-10. It's out of date w.r.t the ACME v2 endpoint. Please use RFC 8555 and the divergences doc that @felixf linked (thanks!) instead.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.