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).
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 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.
./certbot-auto
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.
"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.
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 etc/letsencrypt/renewal/donaldduck.com.conf
This file had a section where you could read (only relevant sections included):
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?!)
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.
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.