Skip to content

Commit

Permalink
acme: expect 202 Accepted from Let's Encrypt
Browse files Browse the repository at this point in the history
ACME draft specifies the CA servers should respond
with 201 Created status code but Let's Encrypt
responds with 202 Accepted when creating a new account.

This change adds 202 Accepted as a valid response.
Otherwise, the Client hangs while doing retries,
discarding 202 responses as invalid.

Tests are not updated intentionally
due to this being non-conformant with the spec.

Fixes golang/go#26251

Change-Id: I2918fce3873592c02e96f4118c4d1ecb42da3c4f
Reviewed-on: https://go-review.googlesource.com/125415
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
  • Loading branch information
Alex Vaghin committed Jul 23, 2018
1 parent b230d31 commit 4dac25d
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions acme/acme.go
Original file line number Diff line number Diff line change
Expand Up @@ -645,8 +645,9 @@ func (c *Client) doReg(ctx context.Context, url string, typ string, acct *Accoun
req.Agreement = acct.AgreedTerms
}
res, err := c.post(ctx, c.Key, url, req, wantStatus(
http.StatusOK, // updates and deletes
http.StatusCreated, // new account creation
http.StatusOK, // updates and deletes
http.StatusCreated, // new account creation
http.StatusAccepted, // Let's Encrypt divergent implementation
))
if err != nil {
return nil, err
Expand Down

0 comments on commit 4dac25d

Please sign in to comment.