# Unable to renew a standalone certificate

**URL:** <https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109>\
**Category:** Help\
**Created:** [September 13, 2017, 5:50am UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109 "2017-09-13T05:50:29Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Animesh\_Bulusu](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/animesh_bulusu/32/16345_2.png) [@Animesh\_Bulusu](https://community.letsencrypt.org/u/Animesh_Bulusu)\
**Post date:** [September 13, 2017, 5:50am UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109/1 "2017-09-13T05:50:29Z")

</div>

My domain is: [animesh.blog](https://animesh.blog)

I ran this command: sudo certbot renew

It produced this output:

```
Cert is due for renewal, auto-renewing...
Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',)
Attempting to renew cert (animesh.blog) from /etc/letsencrypt/renewal/animesh.blog.conf produced an unexpected error: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',). Skipping.

```

My web server is (include version): standalone

The operating system my web server runs on is (include version): Debian Testing

My hosting provider, if applicable, is:

I can login to a root shell on my machine (yes or no, or I don’t know): Yes

I’m using a control panel to manage my site (no, or provide the name and version of the control panel): no

* * *

My SSL certificate is due for renewal by tomorrow. I just tried to renew it and got the above error. This will be the first renewal. Initially I created the certificate successfully using the following command and then uploaded a `.well-known/filename` file onto my site for verification.

`sudo certbot certonly --standalone -d animesh.blog`

Kindly let me know if this can be fixed and how or if I need to go for a new certificate.

Thanks

---

<div class="post-metadata">

**Author:** ![jared.m](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/jared.m/32/17871_2.png) [@jared.m](https://community.letsencrypt.org/u/jared.m)\
**Post date:** [September 13, 2017, 6:53am UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109/2 "2017-09-13T06:53:31Z")

</div>

Are you sure you used that exact command originally? Standalone would not have you place a challenge file in that directory.

Could you please post the contents of `/etc/letsencrypt/renewal/animesh.blog.conf`?

---

<div class="post-metadata">

**Author:** ![Animesh\_Bulusu](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/animesh_bulusu/32/16345_2.png) [@Animesh\_Bulusu](https://community.letsencrypt.org/u/Animesh_Bulusu)\
**Post date:** [September 13, 2017, 7:07am UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109/3 "2017-09-13T07:07:29Z")

</div>

I was under the impression I did it this way. I have nginx installed in my laptop at that time, but I am not really sure I used the nginx way.

May using `- manual` way? I am not remembering unfortunately.

Here is the `animesh.blog.conf`

```
# renew_before_expiry = 30 days
version = 0.10.2
archive_dir = /etc/letsencrypt/archive/animesh.blog
cert = /etc/letsencrypt/live/animesh.blog/cert.pem
privkey = /etc/letsencrypt/live/animesh.blog/privkey.pem
chain = /etc/letsencrypt/live/animesh.blog/chain.pem
fullchain = /etc/letsencrypt/live/animesh.blog/fullchain.pem

# Options used in the renewal process
[renewalparams]
authenticator = manual
installer = None
account = ...
```

---

<div class="post-metadata">

**Author:** ![jared.m](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/jared.m/32/17871_2.png) [@jared.m](https://community.letsencrypt.org/u/jared.m)\
**Post date:** [September 13, 2017, 7:12am UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109/4 "2017-09-13T07:12:28Z")

</div>

> [@Animesh\_Bulusu](#):
>
> authenticator = manual

Yup, that's the issue! You can't really use manual mode for automated (scripted) renewals because it requires you to manually do something! (Well, you can, but it requires flags telling Certbot what commands to execute during the manual phase, which you would normally do yourself.)

So, let's start with some basics. What's your setup like? Is there a reason you went with manual? I would typically recommend webroot, apache, or nginx in most cases. Standalone is an option, but requires stopping your webserver during the process, so that's normally not preferable.

---

<div class="post-metadata">

**Author:** ![Animesh\_Bulusu](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/animesh_bulusu/32/16345_2.png) [@Animesh\_Bulusu](https://community.letsencrypt.org/u/Animesh_Bulusu)\
**Post date:** [September 13, 2017, 7:19am UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109/5 "2017-09-13T07:19:23Z")

</div>

I followed the steps from the [gitlab article](https://about.gitlab.com/2016/04/11/tutorial-securing-your-gitlab-pages-with-tls-and-letsencrypt/)

where it says

> Since we are running on GitLab's servers instead, we have to do a bit of manual work:

> `$ ./letsencrypt-auto certonly -a manual -d YOURDOMAIN.org`

I ran this with `certbot` instead of `letsencrypt-auto`, I think.

I set this up on my laptop running Debian Testing. I have nginx up and running all time but I don't use it to run the blog locally.

---

<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:** [September 13, 2017, 4:57pm UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109/6 "2017-09-13T16:57:10Z")

</div>

If you want automated renewals, you’ll have to find a way to script the authentication process. (Otherwise, you can manually re-run the same command that you used to obtain the certificate, which will perform a manual renewal.) Is that tutorial accurate for your setup? Is your domain hosted on GitLab’s servers instead of your own servers?

---

<div class="post-metadata">

**Author:** ![Animesh\_Bulusu](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/animesh_bulusu/32/16345_2.png) [@Animesh\_Bulusu](https://community.letsencrypt.org/u/Animesh_Bulusu)\
**Post date:** [September 14, 2017, 1:23am UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109/7 "2017-09-14T01:23:51Z")

</div>

Domain is hosted by [iwantmyname.com](http://iwantmyname.com) and only the blog is hosted on gitlab, but the tutorial still worked for me as I could create it initially. I will try running the command again and get back to you.

---

<div class="post-metadata">

**Author:** ![Animesh\_Bulusu](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/animesh_bulusu/32/16345_2.png) [@Animesh\_Bulusu](https://community.letsencrypt.org/u/Animesh_Bulusu)\
**Post date:** [September 14, 2017, 2:31am UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109/8 "2017-09-14T02:31:57Z")

</div>

Yes, my blog is a static blog deployed to gitlab servers automatically after every push. In gitlab settings, there is a page to add the .pem file manually

I just ran the following command and uploaded the acme challenge file as instructed and it renewed the certifcate successfully

```
sudo certbot certonly -a manual -d animesh.blog

Cert is due for renewal, auto-renewing...
Renewing an existing certificate
...
To non-interactively renew *all* of your certificates, run
"certbot renew"

```

So I guess this is the only way to renew for a cert created manually. Then to paste again the `.pem` files in gitlab settings manually is quite inconvenient. I will have to find a way to script the authentication process.

---

<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:** [October 14, 2017, 2:31am UTC](https://community.letsencrypt.org/t/unable-to-renew-a-standalone-certificate/42109/9 "2017-10-14T02:31:59Z")

</div>

Closed on October 14, 2017, 2:31am UTC

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