letsencrypt / letsencrypt/pebble

Unable to revoke: The certificate being revoked is not associated with account

Open
#478 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
787
Forks
176
PR merge metrics
No merged PRs in 30d

Description

I am having issues revoking certificates. I am getting "The certificate being revoked is not associated with account" as an error.

	authorizedToRevoke := func(cert *core.Certificate) *acme.ProblemDetails {
		if cert.AccountID == existingAcct.ID {
			return nil
		}
		return acme.UnauthorizedProblem(
			fmt.Sprintf(
				"The certificate being revoked is not associated with account %q",
				existingAcct.ID))

I was able to modify pebble locally to print out the accountId associated with the certificate. It appears to be blank. I am unsure how this is happening.

The certificate being revoked is not associated with account \\\\\\\"6c3d1863562d6c90\\\\\\\", cert account: \\\\\\\"\\\\\\\"\\\")

log output:
for order:
protected Header { alg: Es256, key: KeyId(\"https://TestELB.elb.us-west-2.amazonaws.com/my-account/6c3d1863562d6c90\"), nonce: Some(\"8Tq8uN5L_Qjn-TT3fs6Kjw\"), url: \"https://TestELB.elb.us-west-2.amazonaws.com/order-plz\" }"
for revoke:
protected Header { alg: Es256, key: KeyId(\"https://TestELB.elb.us-west-2.amazonaws.com/my-account/6c3d1863562d6c90\"), nonce: Some(\"28T954H3O91KG7Hfdn0w0g\"), url: \"https://TestELB.elb.us-west-2.amazonaws.com/revoke-cert\" }"

based on the pebble logs, it looks like it is associated the account to the cert order correctly

Pebble 2024/12/20 17:38:21 Listening on: 0.0.0.0:14000
Pebble 2024/12/20 17:38:21 ACME directory available at: https://0.0.0.0:14000/dir
Pebble 2024/12/20 17:38:59 GET /dir -> calling handler()
Pebble 2024/12/20 17:39:00 HEAD /nonce-plz -> calling handler()
Pebble 2024/12/20 17:39:00 POST /sign-me-up -> calling handler()
Pebble 2024/12/20 17:39:00 There are now 1 accounts in memory
Pebble 2024/12/20 17:39:45 GET /dir -> calling handler()
Pebble 2024/12/20 17:39:46 HEAD /nonce-plz -> calling handler()
Pebble 2024/12/20 17:39:46 POST /order-plz -> calling handler()
Pebble 2024/12/20 17:39:46 There are now 1 authorizations in the db
Pebble 2024/12/20 17:39:46 Added order "WljDDigaU6WTbeQFdeq1l1tUnrgTbKBVA8603n0LItA" to the db
Pebble 2024/12/20 17:39:46 There are now 1 orders in the db
Pebble 2024/12/20 17:39:46 POST /authZ/ -> calling handler()
Pebble 2024/12/20 17:39:47 POST /chalZ/ -> calling handler()
Pebble 2024/12/20 17:39:47 Pulled a task from the Tasks queue: &va.vaTask{Identifier:acme.Identifier{Type:"dns", Value:"firstone.com"}, Challenge:(*core.Challenge)(0xc0003de960), Account:(*core.Account)(0xc0000fb920), AccountURL:"https://localhost:14000/my-account/6c3d1863562d6c90", Wildcard:false}
Pebble 2024/12/20 17:39:47 Starting 3 validations.
Pebble 2024/12/20 17:39:47 Sleeping for 1s seconds before validating
Pebble 2024/12/20 17:39:47 Sleeping for 4s seconds before validating
Pebble 2024/12/20 17:39:47 Sleeping for 1s seconds before validating
Pebble 2024/12/20 17:39:48 PEBBLE_VA_ALWAYS_VALID is enabled. Skipping real validation of challenge 9lzZcmyVfP1XzE3wnSajVUPnS9KsQmkSNYF0Sb9QPa0
Pebble 2024/12/20 17:39:48 PEBBLE_VA_ALWAYS_VALID is enabled. Skipping real validation of challenge 9lzZcmyVfP1XzE3wnSajVUPnS9KsQmkSNYF0Sb9QPa0
Pebble 2024/12/20 17:39:51 POST /authZ/ -> calling handler()
Pebble 2024/12/20 17:39:51 PEBBLE_VA_ALWAYS_VALID is enabled. Skipping real validation of challenge 9lzZcmyVfP1XzE3wnSajVUPnS9KsQmkSNYF0Sb9QPa0
Pebble 2024/12/20 17:39:51 authz 0uCyNyR6Q8FvQ9MN8-DoaW4loBvdwO1H3TN7jc1CqDs set VALID by completed challenge 9lzZcmyVfP1XzE3wnSajVUPnS9KsQmkSNYF0Sb9QPa0
Pebble 2024/12/20 17:39:58 POST /authZ/ -> calling handler()
Pebble 2024/12/20 17:39:59 POST /finalize-order/ -> calling handler()
Pebble 2024/12/20 17:39:59 Order WljDDigaU6WTbeQFdeq1l1tUnrgTbKBVA8603n0LItA is fully authorized. Processing finalization
Pebble 2024/12/20 17:39:59 Issued certificate serial 2e0596daeb07e65d for order WljDDigaU6WTbeQFdeq1l1tUnrgTbKBVA8603n0LItA
Pebble 2024/12/20 17:39:59 POST /my-order/ -> calling handler()

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the revocation path containing authorizedToRevoke and trace how the certificate account ID is persisted from order finalization through certificate retrieval. Reproduce the reported flow using the Pebble logs and inspect the certificate and account records. Done means a certificate issued for an account retains that association and can be revoked by the same account.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.