Certbot: command not found


I followed these instructions.


The installation of certbot-auto ends with the message:

No installers seem to be present and working on your system; fix that or try running certbot with the “certonly” command.

Well, I don’t run Apache on Ubuntu, so I guess that’s alright.

But when I then type a command like

certbot certonly --standalone -d testserver.com

then I get the error message

certbot: command not found

What do I do now?




Maybe it should help if you tried running?

certbot-auto certonly --standalone -d testserver.com


Update: The solution is doing ./certbot or ./certbot-auto

Same error for me.

certbot: command not found
certbot-auto: command not found

I am doing this from certbot.

OS: Ubuntu 16.04


If you have installed certbot using the certbot-auto script, you generally should use ./certbot-auto ... (notice the ./ in the beginning) whenever the documentation says certbot .... Make sure you’re doing this from the directory where you initially downloaded the certbot-auto script.

certbot would be the command you’d run if you have installed one of the native OS packages (for example the debian package in jessie-backports).


Thanks a lot pfg.

This did the trick.
You have to be in the certbot folder and address the file certbot-auto directly with ./certbot-auto .

Cheers, Chris


Maybe certbot could extend PATH for the user that installed it to include its installation directory? I would imagine that might make life a bit easier for some users …


That might temporarily make life easier for the user in question.

It would take less time and less efforts than having to learn the basics of PATH and how it works.

Now, from a completely different point of view, most people being able to install software that will create (cert)-files somewhere under /etc/ on a server computer servicing html to the Internet (or even an Intranet) will most likely have elevated privileges…

Personally, I’m not sure if it’s optimal to let any and all installation procedures of different software packages affect the contents of PATH just to make sure the same user (with elevated privileges) may execute any software without understanding how it’s found, where it is or why it’s where it is.


I’m not saying “any” and not suggesting some sort of completely unattended install :slight_smile: There could just be a question during the installation procedure asking for this for example. Something along the lines of “Would you like to be able to execute certbot even when you are not in the /whatever directory?” might work.


Well, if someone doesn’t know how to run commands in an appropriate directory, that’s another issue, but…

I have the same problem.
Upgrading certbot-auto 0.7.0 to 0.8.1…
Replacing certbot-auto…
No installers seem to be present and working on your system; fix that or try running certbot with the “certonly” command

You know, when one is making software, one should always be intelligent enough to provide sufficient details and not, sorry for the technical term, bullshit messages like this one. What does that mean, that I don’t have the newest tetris installer? Of course running letsencrypt-auto ends up spewing the same nondescript nonsense message.


Did you try that?

“No installer” means that no server software was found for which certbot could perform the installation automatically. Following the instructions from the certbot homepage that is specific to your OS and server software should still work, though.


Thanks for your reply. Of course I did.

Just as a reminder for people having the same problem - to give them something specific, instead of generic, half-baked, wikipedia-like “solutions”:

In my case, the problem was in the configuration file which governs the whole process. This is located in
This file had a section where you could read (only relevant sections included):

[renewalparams] authenticator = None installer = None webroot_path = /var/www/letsencrypt, [[webroot_map]] donaldduck.com = /var/www/letsencrypt

This is obviously wrong. I am using nginx with /.well-known/acme-challenge technolgy, so I get response from ACME server even when all my domains are up and nginx is running (anyway, what kind of stupid idea is to take down your webserver so certbot can hog your port 80?!)

The correct section should read:

[renewalparams] authenticator = webroot installer = None webroot_path = /var/www/letsencrypt, [[webroot_map]] donaldduck.com = /var/www/letsencrypt

By changing authenticator config param, I got it to work. Obviously, don’t go and copy-paste this code, it is valid only for webroot authenticator. If you use Apache (I pity you for using buggy, flawed and insecure webserver), switch to nginx and use webroot. You’ll thank me later. Or not.

While I am happy there is CA like Letsencrypt issuing free certs for everyone, it should be important for these folks not to forget the ease of use and not to overcomplicate the whole process. It is brutally overcomplicated now. A breath of Ruby-like simplicity would do you good.



Hi. I’m just registered an account to say thank you as your tips helped me solve my problem. Thank you


On Raspberry Pi – for use with HomeAssistant – this worked for me (per this post above) to remove an old cert that is no longer valid. The command is (run directly from the original folder I downloaded certbot-auto into):

./certbot-auto delete

This installed several new elements and python packages (taking a few minutes) before running the command and showing me the list of domains for which I was then able to easily remove the old one.