My domain is: https://ducklings.io
My web server is (include version): Nginx
The operating system my web server runs on is (include version): Ubuntu 18.04.3 LTS
I can login to a root shell on my machine: yes
I’m using a control panel to manage my site: no
The version of my client is: certbot 0.31.0
Hi, I would like to update certbot to 0.36 or higher but I’m not having much luck.
When trying to renew certs I get the following message
Attempting to parse the version 0.36.0 renewal configuration file found at /etc/letsencrypt/renewal/ducklings.io.conf with version 0.31.0 of Certbot. This might not work.
Renewal configuration file /etc/letsencrypt/renewal/ducklings.io.conf (cert: ducklings.io) produced an unexpected error: 'Namespace' object has no attribute 'dns_digitalocean_credentials'. Skipping.
So I figured updating to at least 0.36 would fix it, having a newer version would be nice anyway.
I tried doing (among other things)
apt-get remove certbot
apt-get install certbot
add-apt-repository --remove ppa:certbot/certbot
downloading and running certbot-auto also didn’t work.
If anyone has any ideas please let me know.
it’s not a direct solution, but it should work.
- Make a backup of that file
- remove it
- create a new certificate with a complete command line
Then Certbot should create a new conf file.
# renew_before_expiry = 30 days
version = 0.36.0
archive_dir = /etc/letsencrypt/archive/ducklings.io
cert = /etc/letsencrypt/live/ducklings.io/cert.pem
privkey = /etc/letsencrypt/live/ducklings.io/privkey.pem
chain = /etc/letsencrypt/live/ducklings.io/chain.pem
fullchain = /etc/letsencrypt/live/ducklings.io/fullchain.pem
# Options used in the renewal process
account = ***censored for my security***
pref_challs = dns-01,
server = https://acme-v02.api.letsencrypt.org/directory
authenticator = dns-digitalocean
dns_digitalocean_credentials = /root/.secrets/certbot/digitalocean.ini
I think the digitialocean plugin wasn’t installed properly. I tried installing it but I made things worse because I am now unable to run certbot at all.
certbot --version gives me this
Traceback (most recent call last):
File "/usr/bin/certbot", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3088, in <module>
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3072, in _call_aside
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3101, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 574, in _build_master
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 892, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 778, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'certbot==0.31.0' distribution was not found and is required by the application
Not sure if there was an easier way to do this but I completely uninstalled certbot and tried to install it again. I was still getting the same error, but after doing
pip install certbot I’m now running 1.0.1 somehow.
Does that file still exist?
[DO NOT SHOW CONTENTS]
ls -l /root/.secrets/certbot/digitalocean.ini
The errors shown seem to indicate that certbot is… broken or incomplete.
I would remove it completely.
Check to ensure it has been removed completely.
Then reinstall certbot.
Yeah I have no idea how everything ended up in this state. I initally wanted to be able to renew certs from crontab, which wasn’t working. Presumably because I had two different versions of certbot installed. One via pip and one via apt-get. And also some python 2 vs python 3 madness.
I completely reinstalled crontab I got the certbot command working again now, and it’s running 1.0.0 so that is looking good. It’s not running in crontab yet, it still shows the same DistributionNotFound error.
Hmm ok it seems like certbot installed in
/usr/local/bin/certbot is working fine but
/usr/bin/certbot isn’t. I’m just running certbot from the absolute path in crontab now, this seems to be working.
/root/.secrets/certbot/digitalocean.ini file exist?
Can cerbot read it?
oh yes, it does. I forgot to mention that sorry.
I purged all my config files while reinstalling certbot so I can’t test it out before I put them back. But I think all should be working fine now.
Are you sure you only have one certbot now?
dpkg --list | grep certbot
find / -name certbot
No I’m pretty sure there’s two.
ii certbot 0.31.0-1+ubuntu18.04.1+certbot+1 all automatically configure HTTPS using Let's Encrypt
ii python3-acme 0.31.0-2+ubuntu18.04.3+certbot+2 all ACME protocol library for Python 3
ii python3-augeas 0.5.0-1+ubuntu18.04.1+certbot+1 all Python3 bindings for Augeas
ii python3-certbot 0.31.0-1+ubuntu18.04.1+certbot+1 all main library for certbot
ii python3-configobj 5.0.6-2+ubuntu18.04.1+certbot+1 all simple but powerful config file reader and writer for Python 3
ii python3-future 0.15.2-4+ubuntu18.04.1+certbot+3 all Clean single-source support for Python 3 and 2 - Python 3.x
ii python3-josepy 1.1.0-2+ubuntu18.04.1+certbot+1 all JOSE implementation for Python 3.x
ii python3-parsedatetime 2.4-3+ubuntu18.04.1+certbot+3 all Python 3 module to parse human-readable date/time expressions
ii python3-requests-toolbelt 0.8.0-1+ubuntu18.04.1+certbot+1 all Utility belt for advanced users of python3-requests
ii python3-zope.component 4.3.0-1+ubuntu18.04.1+certbot+3 all Zope Component Architecture
ii python3-zope.hookable 4.0.4-4+ubuntu18.04.1+certbot+1 amd64 Hookable object support
ii python3-zope.interface 4.3.2-1+ubuntu18.04.1+certbot+1 amd64 Interfaces for Python3
certbot --version gives me 1.0.0 which is nice because that’s what I want. I’m not sure why 1.0.0 isn’t listed in
dpkg --list | grep certbot though.
find / -name certbot results in
which certbot gives me
/usr/bin/certbot --version still gives the
I’m hesitant to run
hash -r, I’m worried it might set the
certbot command back to the currently broken
So, yes, you do have two certbots.
I would remove ALL of it.
Then put back the one you want.
Alright I uninstalled certbot using
apt-get uninstall certbot
dpkg --list | grep certbot still shows one 0.31.0 entry, which I can’t seem to get rid of. Either way, the
certbot command is still working so I think all is good now.
Thanks for all the help! It’s much appreciated
dpkg --remove certbot gives me
dpkg: warning: ignoring request to remove certbot, only the config
files of which are on the system; use --purge to remove them too
So that’s probably why it’s still listed there. I think I’ll leave it there though, because I just finished putting all my config files back. And
/usr/bin/certbot no longer exists so that shouldn’t cause any trouble.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.