diff --git a/wfe/web-front-end.go b/wfe/web-front-end.go index 0cdd3a71c..bd20408de 100644 --- a/wfe/web-front-end.go +++ b/wfe/web-front-end.go @@ -338,8 +338,9 @@ func (wfe *WebFrontEndImpl) NewRegistration(response http.ResponseWriter, reques return } - if _, err = wfe.SA.GetRegistrationByKey(*key); err == nil { + if existingReg, err := wfe.SA.GetRegistrationByKey(*key); err == nil { logEvent.Error = "Registration key is already in use" + response.Header().Set("Location", fmt.Sprintf("%s%d", wfe.RegBase, existingReg.ID)) wfe.sendError(response, logEvent.Error, nil, http.StatusConflict) return } diff --git a/wfe/web-front-end_test.go b/wfe/web-front-end_test.go index a1ea4646e..77c26c6b6 100644 --- a/wfe/web-front-end_test.go +++ b/wfe/web-front-end_test.go @@ -703,6 +703,9 @@ func TestNewRegistration(t *testing.T) { test.AssertEquals(t, responseWriter.Body.String(), "{\"type\":\"urn:acme:error:malformed\",\"detail\":\"Registration key is already in use\"}") + test.AssertEquals( + t, responseWriter.Header().Get("Location"), + "/acme/reg/1") } // Valid revocation request for existing, non-revoked cert