Certbot: The requested nginx plugin does not appear to be installed?

Created on 4 Dec 2015  ·  25Comments  ·  Source: certbot/certbot

./letsencrypt-auto --nginx

Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt --nginx
The requested nginx plugin does not appear to be installed

I can see the folder being in the source - isn't it ready yet?

nginx ui / ux

Most helpful comment

It’s certbot nowadays. So the command to install the nginx plugin would be:

$ sudo apt install python-certbot-nginx

All 25 comments

same issue. please help.

+1

nginx plugin is not ready

If the plugin is not ready, it should not be exposed as an option when users run letsencrypt-auto --help all. References in the docs should be replaced with a mention of the forthcoming plugin instead of offering slim hope that the plugin, in its experimental state, might work.

IMO docs are pretty clear, when saying "Very experimental and not included in letsencrypt-auto".

On the other hand, I do think that listing any non-installed plugin (including nginx) in --help is a problem. Unfortunately, it was decided to hardcode plugins in cli.py :(

So how do you install it?

@izolate you can generate a certificate with the cmd: ./letsencrypt-auto certonly -a manual --rsa-key-size 4096 --email [email protected] -d yourdomain.com -d www.yourdomain.com

Then, just add these lines to your .conf:

server {
    listen  443 ssl;
    server_name yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    (...)

@ffsantos92 Cheers, that's what I already did. Was wondering how to install the experimental Nginx plugin.

There are a couple ways to install the Nginx plugin. If you'd just like to try it, I recommend you do the following:

  1. Assuming you're using letsencrypt-auto, determine where letsencrypt is installed. On most systems, this will be ~/.local/share/letsencrypt.
  2. Using the path you found, run the following ~/.local/share/letsencrypt/bin/pip install -U letsencrypt-nginx

After that, letsencrypt-nginx will be installed, can be used when running letsencrypt-auto, and will benefit from letsencrypt-auto's automatic updates.

If you'd like to hack on the Nginx plugin, follow our dev installation instructions which will install the plugin.

@bmw +1 thank you!

I just discovered that full blown browsers like Firefox and Chrome can connect to the server with the suggested configuration, which includes the line

ssl_certificate /etc/letsencrypt/live/yourdomain.com/cert.pem;

but clients like curl and wget don't. The reasons are explained shortly in the first answer to #2026 and in detail on the nginx site.

TL;DR use this instead:

ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;

The output of letsencrypt-auto --help, and the docs are very clear that the nginx plugin is currently experimental and only suitable for use by developers and other intrepid folks who are fine with things breaking. If anyone has a specific further change they want to the documentation, please send a PR!

FWIW, on ubuntu 16.04 you can resolve this by adding this ppa https://launchpad.net/~certbot/+archive/ubuntu/certbot, updating ~letsencrypt~ certbot and installing python-certbot-nginx

It’s certbot nowadays. So the command to install the nginx plugin would be:

$ sudo apt install python-certbot-nginx

how to install it on Centos 7 ? thanks

@ghost
Your solution worked for me.

sudo apt-get install certbot
sudo apt install python-certbot-nginx
sudo certbot --nginx - example.com -d www.example.com
then restarted nginx. That's it for 3.10.104-2-pine64-longsleep (ubuntu for arm)

The domain already needs to be specified in the nginx conf file.The certbot takes the domain from file only no need to specify the domain.Follow the steps below
1 First install Cetbot with
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot
2 Install nginx plugin with "sudo apt install python-certbot-nginx" after installing certbot.
3 Now navigate to the nginx config file with" sudo nano /etc/nginx/nginx.conf"
4 here go to the included files for sites enabled in http scope exp-
"/etc/nginx/sites-enabled/"
5 open default with "sudo vi default"
6 Here change "server_name" to your domain name for 443 port.These are
individual server blocks
7 If you need to add something on other port then it can be done in this file.
8 And now save the file
9 start the bash as admin with "sudo bash"
10 Now start certbot with nginx plugin."certbot --nginx"
11 select the appropriate options and domain which will be listed automatically.
This works in Ubuntu 16.04 so I guess it would work on most other as well.

How can I install DNS plugins for certbot-auto? My OS packages won't be ready for another few weeks.

We've made a lot of changes to Certbot since this issue was opened. If you still have this issue with an up-to-date version of Certbot, can you please add a comment letting us know? This helps us to better see what issues are still affecting our users. If there is no further activity, this issue will be automatically closed.

@dimitre for CentOS 7 sudo yum install python-certbot-nginx then sudo certbot renew worked np.

It’s certbot nowadays. So the command to install the nginx plugin would be:

$ sudo apt install python-certbot-nginx

^^^ This failed. FYI, sudo apt install python3-certbot-nginx works.

It’s certbot nowadays. So the command to install the nginx plugin would be:

$ sudo apt install python-certbot-nginx

Many thanks bro

latest

$ sudo apt install python3-certbot-nginx

Was this page helpful?
0 / 5 - 0 ratings