Trouble w/ Certbot & Let's Encrypt on Nginx/Ubuntu14.04

June 1, 2017 1.4k views
Nginx Let's Encrypt Ubuntu

I'm following these instructions to install Certbot and Let's Encrypt on my droplet running Nginx and Ubuntu 14.04, but am hitting a snag.

When I get to the alpha plugin portion: certbot --nginx I get the following response:

    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    No names were found in your configuration files. Please enter in your domain
    name(s) (comma and/or space separated)  (Enter 'c' to cancel):  

I enter my domain name, hit enter and get:

    Obtaining a new certificate
    Performing the following challenges:
    tls-sni-01 challenge for **MYDOMAINNAME**
    Cleaning up challenges
    Cannot find a VirtualHost matching domain **MYDOMAINNAME**.

I'm not sure how to get past this error. Here's my sites-available server block:


    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name localhost;

        location ~ /.well-known {
            allow all;
            root /usr/share/nginx/html;
        }

        location / {

            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
        }
    }

Any ideas where I'm going wrong?

2 Answers

Turns out I needed to add a server block to nginx.conf and not just sites-available:

server {
listen 80;
server_name MYDOMAIN;
}

Running the process after that worked!

Hi @marketing8b7cf186d951e4e8d

In your server block, this is your problem server_name localhost;
That should be your domain, something like this:

server_name example.com www.example.com;

Then test Nginx and restart it by running this command:

sudo service nginx configtest
sudo service nginx restart

Then run certbot --nginx again and use example.com www.example.com as domain.

Have another answer? Share your knowledge.