# Create certificates manually without ACME client software

**URL:** <https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918>\
**Category:** Help\
**Created:** [July 20, 2020, 10:26am UTC](https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918 "2020-07-20T10:26:15Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![wrogner](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/wrogner/32/41234_2.png) [@wrogner](https://community.letsencrypt.org/u/wrogner)\
**Post date:** [July 20, 2020, 10:26am UTC](https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918/1 "2020-07-20T10:26:15Z")

</div>

My domain is: rsb.at  
My web server is (include version): Apache 2.24.x  
The operating system my web server runs on is (include version): Ubuntu

How can I create a certificate without using Certbot or any other ACME client software?

I used ZeroSSL but they changed their policy and CA so that I have to recreate certificates from scratch.

Addition: I read around a little and learned two things:  
a) ACME clients are mandatory (as they are supposed to be more modern)  
b) there are several issues with Certbot (the recommended way to install certificates)

Conclusion: I will install certbot and read the source. That will reveal the manual way. If certbot proves to be stable in my situation, I might use the automation later.  
Mayby providing a manual way would be helpful after all.

---

<div class="post-metadata">

**Author:** ![leader](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/leader/32/7569_2.png) [@leader](https://community.letsencrypt.org/u/leader)\
**Post date:** [July 20, 2020, 10:38am UTC](https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918/2 "2020-07-20T10:38:21Z")

</div>

> [@wrogner](#):
>
> without using Certbot or any other ACME client software

Let's Encrypt offers the API, which is used by the software to get you the certificate. In case of ZeroSSL you still used the software, it was just running in your browser. You could for example grab the latest [Crypt::LE Windows binary](https://github.com/do-know/Crypt-LE/releases/latest/download/le64.zip) (single file, no installation required) and run it interactively as well (it can be also run in automated mode) with something like this to get the certificate for your domain:

```nohighlight
le64.exe -email "contact@rsb.at" -key account.key -csr domain.csr -csr-key domain.key -crt domain.crt -domains "www.rsb.at,rsb.at" -generate-missing -live

```

More documentation can be found [here](https://github.com/do-know/Crypt-LE#quick-start-on-windows). You can also pick any other client you like from the rather long [list of those](https://letsencrypt.org/docs/client-options/).

---

<div class="post-metadata">

**Author:** ![wrogner](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/wrogner/32/41234_2.png) [@wrogner](https://community.letsencrypt.org/u/wrogner)\
**Post date:** [July 20, 2020, 10:43am UTC](https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918/3 "2020-07-20T10:43:31Z")

</div>

@leader: Thanks for the prompt reply.  
I use Mac as clients and Ubuntu as servers. No Windows I’m afraid and no Perl either.  
I will search for some Python or Bash client to get me along.  
Also thanks for the documentation hints

---

<div class="post-metadata">

**Author:** ![schoen](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/schoen/32/79_2.png) [@schoen](https://community.letsencrypt.org/u/schoen)\
**Post date:** [July 20, 2020, 10:57pm UTC](https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918/4 "2020-07-20T22:57:51Z")

</div>

Today a very popular client is [https://acme.sh/](https://acme.sh/), if you’re looking for a relatively self-contained client written in the Bourne shell.

---

<div class="post-metadata">

**Author:** ![danb35](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/danb35/32/70869_2.png) [@danb35](https://community.letsencrypt.org/u/danb35)\
**Post date:** [July 21, 2020, 9:41am UTC](https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918/5 "2020-07-21T09:41:27Z")

</div>

> [@wrogner](#):
>
> I used ZeroSSL

...which was ACME client software, just software that ran on someone else's web site.

> [@wrogner](#):
>
> ACME clients are mandatory (as they are supposed to be more modern)

It has nothing to do with being more modern, as such. Rather, it's down to the design of Let's Encrypt. It's designed to be used only through automated means--you set up your client (whichever one you like, and there are lots to choose from), and it not only obtains the cert, it automatically renews it for you when necessary (and since the certs are only valid for 90 days, this is needed fairly frequently). Doing this means (among other things) that it's very unlikely you'll see a certificate expire, which is fairly common when it's a manual process.

> [@wrogner](#):
>
> there are several issues with Certbot (the recommended way to install certificates)

I'm not a big fan of certbot myself (mainly due to the ridiculous amount of dependencies), but it works well enough for what it does. Assuming it's compatible with your environment, it would likely be fine. And you can run it in manual mode if you like, so it won't make any changes or put any files anywhere other than the certificate files.

---

<div class="post-metadata">

**Author:** ![wrogner](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/wrogner/32/41234_2.png) [@wrogner](https://community.letsencrypt.org/u/wrogner)\
**Post date:** [July 21, 2020, 12:35pm UTC](https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918/6 "2020-07-21T12:35:52Z")

</div>

@danb35: thanks for your reply.  
I do understand that ZeroSSL was a web frontend to Letsencrypt and now isn’t any more.

I reviewed some of the ACME clients but decided for Certbot. However, after using it, I still think that I want to find a more suitable solution (stability, functionality and user friendliness).

btw. Which dependencies were you talking about (I presume you mean additional python libraries which looked OK to me)?

---

<div class="post-metadata">

**Author:** ![schoen](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/schoen/32/79_2.png) [@schoen](https://community.letsencrypt.org/u/schoen)\
**Post date:** [July 21, 2020, 5:48pm UTC](https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918/7 "2020-07-21T17:48:19Z")

</div>

> [@wrogner](#):
>
> Which dependencies were you talking about (I presume you mean additional python libraries which looked OK to me)?

Yes, right now the current Certbot in Ubuntu has

Depends: python3-acme (\>= 0.26.0~), python3-requests (\>= 2.4.3), python3-configargparse (\>= 0.10.0), python3-configobj, python3-cryptography (\>= 1.2), python3-josepy, python3-mock, python3-parsedatetime (\>= 1.3), python3-pkg-resources, python3-rfc3339, python3-tz, python3-zope.component, python3-zope.interface, python3:any (\>= 3.3.2-2~)

That's kind of a lot in comparison to other ACME clients. (I think I was personally responsible for introducing the configobj and parsedatetime dependencies—sorry!)

---

<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:** [August 20, 2020, 5:48pm UTC](https://community.letsencrypt.org/t/create-certificates-manually-without-acme-client-software/128918/8 "2020-08-20T17:48:24Z")

</div>

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