# Error renewing certificates

**URL:** <https://community.letsencrypt.org/t/error-renewing-certificates/123200>\
**Category:** Help\
**Created:** [May 19, 2020, 10:25am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200 "2020-05-19T10:25:50Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mysterio](https://avatars.discourse-cdn.com/v4/letter/m/e56c9b/32.png) [@Mysterio](https://community.letsencrypt.org/u/Mysterio)\
**Post date:** [May 19, 2020, 10:25am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/1 "2020-05-19T10:25:50Z")

</div>

Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. [https://crt.sh/?q=example.com](https://crt.sh/?q=example.com)), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.

My domain is: [domain](http://upskill.techzillaindia.com) (check hyperlink)

I ran this command: cerbot renew , cerbot certificates

It produced this output: no certs found, no renewals attempted

My web server is (include version):

The operating system my web server runs on is (include version): Ubuntu 18.04.3

My hosting provider, if applicable, is: DO

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

The version of my client is (e.g. output of `certbot --version` or `certbot-auto --version` if you’re using Certbot):

\*\*I see all the certificates in the folder docker-volumes/etc/letsencrypt folder \*\*  
on the path /etc/letsencrypt there are no live keys stored.  
The keys from docker volumes are mounted to the Docker containers as well .  
I have received an email about the renewal, but when I try renewing it, I get no certs found, no renewals attempted. Maybe I feel it is trying to fetch details from default path i.e etc/letsencrypt but actually the data is in docker-volumes/etc/letsencrypt folder. How do i fix it?

---

<div class="post-metadata">

**Author:** ![rg305](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/rg305/32/91314_2.png) [@rg305](https://community.letsencrypt.org/u/rg305)\
**Post date:** [May 19, 2020, 11:47am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/2 "2020-05-19T11:47:11Z")

</div>

Can you make a symbolic link to use `/docker-volumes/etc/letsencrypt/` as `/etc/letsencrypt/` ?

If not, try:  
`certbot renew --config-dir /docker-volumes/etc/letsencrypt/`

---

<div class="post-metadata">

**Author:** ![Mysterio](https://avatars.discourse-cdn.com/v4/letter/m/e56c9b/32.png) [@Mysterio](https://community.letsencrypt.org/u/Mysterio)\
**Post date:** [May 19, 2020, 12:18pm UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/3 "2020-05-19T12:18:56Z")

</div>

Hey !  
It tried the renew command with config dir

Traceback (most recent call last):  
File “/usr/lib/python3/dist-packages/certbot/renewal.py”, line 67, in \_reconstitute  
renewal\_candidate = storage.RenewableCert(full\_path, config)  
File “/usr/lib/python3/dist-packages/certbot/storage.py”, line 463, in **init**  
self.\_check\_symlinks()  
File “/usr/lib/python3/dist-packages/certbot/storage.py”, line 522, in \_check\_symlinks  
“expected {0} to be a symlink”.format(link))  
certbot.errors.CertStorageError: expected /etc/letsencrypt/live/upskill.techzillaindia.com/cert.pem to be a symlink  
Renewal configuration file /docker-volumes/etc/letsencrypt/renewal/upskill.techzillaindia.com.conf is broken. Skipping.

**How exactly to make a symbolic link? Help will be appreciated!**

Thanks

---

<div class="post-metadata">

**Author:** ![Mysterio](https://avatars.discourse-cdn.com/v4/letter/m/e56c9b/32.png) [@Mysterio](https://community.letsencrypt.org/u/Mysterio)\
**Post date:** [May 19, 2020, 12:21pm UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/4 "2020-05-19T12:21:41Z")

</div>

I tried the command but Additionally, the following renewal configurations were invalid:  
/docker-volumes/etc/letsencrypt/renewal/upskill.techzillaindia.com.conf (parsefail)

How excatly to make a symbolic link? Any help will be appreciated!

---

<div class="post-metadata">

**Author:** ![Mysterio](https://avatars.discourse-cdn.com/v4/letter/m/e56c9b/32.png) [@Mysterio](https://community.letsencrypt.org/u/Mysterio)\
**Post date:** [May 19, 2020, 12:22pm UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/5 "2020-05-19T12:22:20Z")

</div>

renewal configuration file /docker-volumes/etc/letsencrypt/renewal/upskill.techzillaindia.com.conf is broken.

---

<div class="post-metadata">

**Author:** ![Mysterio](https://avatars.discourse-cdn.com/v4/letter/m/e56c9b/32.png) [@Mysterio](https://community.letsencrypt.org/u/Mysterio)\
**Post date:** [May 19, 2020, 12:31pm UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/6 "2020-05-19T12:31:59Z")

</div>

The config file is as follows

# renew\_before\_expiry = 30 days

version = 1.2.0  
archive\_dir = docker-volumes/etc/letsencrypt/archive/upskill.techzillaindia.com  
cert = docker-volumes/etc/letsencrypt/live/upskill.techzillaindia.com/cert.pem  
privkey = docker-volumes/etc/letsencrypt/live/upskill.techzillaindia.com/privkey.pem  
chain = docker-volumes/etc/letsencrypt/live/upskill.techzillaindia.com/chain.pem  
fullchain = docker-volumes/etc/letsencrypt/live/upskill.techzillaindia.com/fullchain.pem

# Options used in the renewal process

[renewalparams]  
account = ccb8e67bb38219c386c3d6e2a866ee39  
authenticator = webroot  
webroot\_path = /data/letsencrypt,  
server = [https://acme-v02.api.letsencrypt.org/directory](https://acme-v02.api.letsencrypt.org/directory)  
[[webroot\_map]]  
[upskill.techzillaindia.com](http://upskill.techzillaindia.com) = /data/letsencrypt

---

<div class="post-metadata">

**Author:** ![rg305](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/rg305/32/91314_2.png) [@rg305](https://community.letsencrypt.org/u/rg305)\
**Post date:** [May 19, 2020, 12:51pm UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/7 "2020-05-19T12:51:58Z")

</div>

Where it says:  
`…= docker-volumes/…`  
Should that be?:  
`…= /docker-volumes/…`

What says?:  
`ls -l /docker-volumes/etc/letsencrypt/`  
`ls -l /data/letsencrypt/`

---

<div class="post-metadata">

**Author:** ![rg305](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/rg305/32/91314_2.png) [@rg305](https://community.letsencrypt.org/u/rg305)\
**Post date:** [May 19, 2020, 12:53pm UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/8 "2020-05-19T12:53:10Z")

</div>

> [@Mysterio](#):
>
> webroot\_path = /data/letsencrypt,

I don't know why there is a comma there.

---

<div class="post-metadata">

**Author:** ![JimPas](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/jimpas/32/33270_2.png) [@JimPas](https://community.letsencrypt.org/u/JimPas)\
**Post date:** [May 20, 2020, 2:12am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/9 "2020-05-20T02:12:24Z")

</div>

He must have corrected those two items you pointed out @rg305. The site is up and has its cert.

---

<div class="post-metadata">

**Author:** ![rg305](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/rg305/32/91314_2.png) [@rg305](https://community.letsencrypt.org/u/rg305)\
**Post date:** [May 20, 2020, 2:44am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/10 "2020-05-20T02:44:00Z")

</div>

We may never know…  
Then name should have clued me in “Mysterio”.  
[Spanish for Mystery]

---

<div class="post-metadata">

**Author:** ![Mysterio](https://avatars.discourse-cdn.com/v4/letter/m/e56c9b/32.png) [@Mysterio](https://community.letsencrypt.org/u/Mysterio)\
**Post date:** [May 20, 2020, 6:45am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/11 "2020-05-20T06:45:12Z")

</div>

Hey! I am fixing it! The site was already up, my renewal is due on 6th june.  
I facing acme challenge verification issue. I’ll update here once done.

---

<div class="post-metadata">

**Author:** ![JimPas](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/jimpas/32/33270_2.png) [@JimPas](https://community.letsencrypt.org/u/JimPas)\
**Post date:** [May 21, 2020, 3:50am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/12 "2020-05-21T03:50:20Z")

</div>

👌  
If you’re having an issue with the acme challenge, don’t hesitate to ask for help. Isn’t great you’re learning as you go? Soon you’ll be an old pro at renewing. 🙂

---

<div class="post-metadata">

**Author:** ![Mysterio](https://avatars.discourse-cdn.com/v4/letter/m/e56c9b/32.png) [@Mysterio](https://community.letsencrypt.org/u/Mysterio)\
**Post date:** [May 22, 2020, 11:46am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/13 "2020-05-22T11:46:36Z")

</div>

I used this tutorial to set up ssl for my website

> **[How to Set Up Free SSL Certificates from Let's Encrypt using Docker and Nginx](https://www.humankode.com/ssl/how-to-set-up-free-ssl-certificates-from-lets-encrypt-using-docker-and-nginx)**
>
> The Complete Guide to Setting Up Free SSL/TLS Certificates from Let's Encrypt using Docker, Nginx and Ubuntu on a Virtual Machine in the Cloud.

Created this directory  
sudo mkdir -p /docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site

Then I created a temporary nginx container, using compose file at  
/docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site

docker-compose.yml  
version: ‘3.1’

services:

letsencrypt-nginx-container:  
container\_name: ‘letsencrypt-nginx-container’  
image: nginx:latest  
ports:  
- “80:80”  
volumes:  
- ./nginx.conf:/etc/nginx/conf.d/default.conf  
- ./letsencrypt-site:/usr/share/nginx/html  
networks:  
- docker-network

networks:  
docker-network:  
driver: bridge

Then created a temporary nginx config to be served using  
sudo nano /docker/letsencrypt-docker-nginx/src/letsencrypt/nginx.conf  
nginx.conf  
erver {  
listen 80;  
listen [::]:80;  
server\_name [example-site.com](http://example-site.com) [www.example-site.com](http://www.example-site.com);

```
location ~ /.well-known/acme-challenge {
    allow all;
    root /usr/share/nginx/html;
}

root /usr/share/nginx/html;
index index.html;

```

}

A temporary html file at  
/docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site/index.html

Then spin up the container using  
cd /docker/letsencrypt-docker-nginx/src/letsencrypt  
docker-compose up -d  
Site was running at the domain

then I fired being in the same directory as /docker/letsencrypt-docker-nginx/src/letsencrypt

sudo docker run -it --rm   
-v /docker-volumes/etc/letsencrypt:/etc/letsencrypt   
-v /docker-volumes/var/lib/letsencrypt:/var/lib/letsencrypt   
-v /docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site:/data/letsencrypt   
-v “/docker-volumes/var/log/letsencrypt:/var/log/letsencrypt”   
certbot/certbot   
certonly --webroot   
–email [youremail@domain.com](mailto:youremail@domain.com) --agree-tos --no-eff-email   
–webroot-path=/data/letsencrypt   
-d [example-site.com](http://example-site.com) -d [www.example-site.com](http://www.example-site.com)

and certificates were available at  
/docker-volumes/etc/letsencrypt

And then volume mapped pem files to our production container.

Now I have to renew the certificates

How should I renew the certificates, I fired certbot renew command at  
/docker-volumes/etc/letsencrypt

The renewal config file is the same as mentioned above  
with web root path "/data/letsencrypt’ the error shows no file and directory.  
When I update it with other existing directly the Http challenge fails.

---

<div class="post-metadata">

**Author:** ![Mysterio](https://avatars.discourse-cdn.com/v4/letter/m/e56c9b/32.png) [@Mysterio](https://community.letsencrypt.org/u/Mysterio)\
**Post date:** [May 25, 2020, 6:16am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/14 "2020-05-25T06:16:59Z")

</div>

@rg305 Any update? My expiry date is nearing

---

<div class="post-metadata">

**Author:** ![9peppe](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/9peppe/32/31596_2.png) [@9peppe](https://community.letsencrypt.org/u/9peppe)\
**Post date:** [May 25, 2020, 9:37am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/15 "2020-05-25T09:37:27Z")

</div>

The tutorial you followed is a pile of steaming crap that uses the host crontab to renew certificates (search for “renew” in that page and you’ll find how).

You should switch to this one:

> **[Nginx and Let’s Encrypt with Docker in Less Than 5 Minutes](https://medium.com/@pentacent/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71)**
>
> Getting Nginx to run with Let’s Encrypt in a docker-compose environment is more tricky than you’d think …

---

<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:** [June 24, 2020, 9:37am UTC](https://community.letsencrypt.org/t/error-renewing-certificates/123200/16 "2020-06-24T09:37:29Z")

</div>

Closed on June 24, 2020, 9:37am UTC

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