# Confused about account registration process

**URL:** <https://community.letsencrypt.org/t/confused-about-account-registration-process/140868>\
**Category:** Client dev\
**Created:** [December 18, 2020, 5:57pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868 "2020-12-18T17:57:25Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![bendavis78](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/bendavis78/32/45517_2.png) [@bendavis78](https://community.letsencrypt.org/u/bendavis78)\
**Post date:** [December 18, 2020, 5:57pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/1 "2020-12-18T17:57:25Z")

</div>

I'm using `acme-python` to create certs within python. Documentation on this is sparse, and in the [examples I've found](https://github.com/certbot/certbot/blob/64543d49704be2180668371cdcff3b42521b51b2/acme/examples/http01_example.py), the client account is registered at the time of certificate creation.

From what I can tell, there is no way to "authenticate" with an existing registration using `acme-python` (you can only create new registrations).

Am I expected to create a new registration for each cert? If not, how do I retrieve an existing registration using the client library?

---

<div class="post-metadata">

**Author:** ![JuergenAuer](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/juergenauer/32/26491_2.png) [@JuergenAuer](https://community.letsencrypt.org/u/JuergenAuer)\
**Post date:** [December 18, 2020, 6:10pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/2 "2020-12-18T18:10:44Z")

</div>

Hi @bendavis78

> [@bendavis78](#):
>
> Am I expected to create a new registration for each cert?

that's bad, very bad.

I use two accounts, one of the test-, one of the productive system. Since 2018 (first Letsencrypt certificate).

There is no need to create so much accounts.

If that library is so limited, use another library.

---

<div class="post-metadata">

**Author:** ![Osiris](https://avatars.discourse-cdn.com/v4/letter/o/839c29/32.png) [@Osiris](https://community.letsencrypt.org/u/Osiris)\
**Post date:** [December 18, 2020, 6:15pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/3 "2020-12-18T18:15:31Z")

</div>

What library/client are you actually using? You're linking to the certbot Github repository..

Could you please explain a little bit more about your setup?

---

<div class="post-metadata">

**Author:** ![bendavis78](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/bendavis78/32/45517_2.png) [@bendavis78](https://community.letsencrypt.org/u/bendavis78)\
**Post date:** [December 18, 2020, 6:40pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/4 "2020-12-18T18:40:20Z")

</div>

Sorry, I meant the `acme-python` library, found here: [https://github.com/certbot/certbot/tree/master/acme](https://github.com/certbot/certbot/tree/master/acme)

---

<div class="post-metadata">

**Author:** ![Osiris](https://avatars.discourse-cdn.com/v4/letter/o/839c29/32.png) [@Osiris](https://community.letsencrypt.org/u/Osiris)\
**Post date:** [December 18, 2020, 6:43pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/5 "2020-12-18T18:43:44Z")

</div>

Documentation can be found here I guess: [https://acme-python.readthedocs.io/](https://acme-python.readthedocs.io/)

Not sure if it helps you very much, as it's quite sparse also.

In any case: I think `acme-python` is more of a low-level ACME client an your Python program which is using it should store the account information for usage by `acme-python` somewhere by itself.

---

<div class="post-metadata">

**Author:** ![jvanasco](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/jvanasco/32/55900_2.png) [@jvanasco](https://community.letsencrypt.org/u/jvanasco)\
**Post date:** [December 18, 2020, 7:27pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/6 "2020-12-18T19:27:12Z")

</div>

1. You are using Certbot's `acme`, which is registered to PyPi as `acme`. It is in Python, but `acme-python` is a completely different package.

2. In that library, you create a Client with an AccountKey , and all operations for that client authenticate. You can look at Certbot to see how they leverage this. for example, [https://acme-python.readthedocs.io/en/stable/api/client.html#acme.client.Client.query\_registration](https://acme-python.readthedocs.io/en/stable/api/client.html#acme.client.Client.query_registration)

The ACME spec is a little weird. The "newAccount" endpoint is used for both creating new accounts and authenticating/checking existing accounts.

---

<div class="post-metadata">

**Author:** ![bendavis78](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/bendavis78/32/45517_2.png) [@bendavis78](https://community.letsencrypt.org/u/bendavis78)\
**Post date:** [December 18, 2020, 8:56pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/7 "2020-12-18T20:56:17Z")

</div>

@jvanasco Ah, I think I posted the wrong link. After looking, I am in fact using `acm-python`.

Looking at the docs, I still don't see a way to get or construct a `regr` object given the account key.

---

<div class="post-metadata">

**Author:** ![Osiris](https://avatars.discourse-cdn.com/v4/letter/o/839c29/32.png) [@Osiris](https://community.letsencrypt.org/u/Osiris)\
**Post date:** [December 18, 2020, 10:16pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/8 "2020-12-18T22:16:37Z")

</div>

> [@jvanasco](#):
>
> You are using Certbot's `acme` , which is registered to PyPi as `acme` . It is in Python, but `acme-python` is a completely different package.

If I Google for "acme-python", I only get documentation on readthedocs for the "acme" package from Let's Encrypt? If "acme-python" is not the same as the acme package from the certbot Github repository, then what is it?

---

<div class="post-metadata">

**Author:** ![bendavis78](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/bendavis78/32/45517_2.png) [@bendavis78](https://community.letsencrypt.org/u/bendavis78)\
**Post date:** [December 18, 2020, 10:29pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/9 "2020-12-18T22:29:46Z")

</div>

@jvanasco after further investigation `acme` and `python-acme` appear to be the same thing. There is no `python-acme` in PyPi, but the [docs here](https://acme-python.readthedocs.io/en/stable/api/client.html) link back to the certbot repo.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/letsencrypt/original/3X/c/a/ca6c06ea1ea201324bba7048c6841ce60236468d.png) [@system](https://community.letsencrypt.org/u/system)\
**Post date:** [January 17, 2021, 10:29pm UTC](https://community.letsencrypt.org/t/confused-about-account-registration-process/140868/10 "2021-01-17T22:29:53Z")

</div>

Closed on January 17, 2021, 10:29pm UTC

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