Could not choose appropriate plugin: The nginx plugin is not working; there may be problems with your existing configuration.
The error was: NoInstallationError()
The nginx plugin is not working; there may be problems with your existing configuration.
The error was: NoInstallationError()
I definitely agree with that (I’m so sorry that I originally gave this option this name… it doesn’t mean “when necessary” but it means “right now, without asking”; the recommended name for this option has been changed to --force-renew).
I’ve just created this issue
to try to make this fact clearer!
But anyway, I don’t think that this issue is directly related to @suslikt1’s problem because including --renew-by-default in a cron job will result in hitting the issuance rate limit early… but not produce a NoInstallationError error.
@suslikt1, could you please post the log file from /var/log/letsencrypt associated with a renewal attempt that produced the NoInstallationError error?
The contrast seems to be whether it can find the nginx binary, which might be because your PATH variable is set differently between the two ways of running Certbot (maybe?).
You could check this by wrapping Certbot in a shell script like
Please try to figure out whether nginx is or isn’t in a location specified by your PATH when run from crontab. You could use the wrapper shell script that I suggested as one possibility.
Attempting to renew cert (site.org) from /etc/letsencrypt/renewal/site.org.conf produced an unexpected error: Problem binding to port 80: Could not bind to IPv4 or IPv6.. Skipping.
I see, it was probably obtained with --standalone then. In this case you could edit the renewal configuration file and change the authenticator from standalone to nginx, or you could renew once with certonly to change it. (Or you could just keep --nginx in your renewal script.)