No matching distribution found for certbot-nginx==0.18.1


Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g., so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.

My domain is:

I ran this command:
./certbot-auto certonly --webroot …

It produced this output:

Downloading (99kB)
Collecting certbot-apache==0.18.1 (from -r /tmp/tmp.FntqV4jY28/letsencrypt-auto-requirements.txt (line 208))
Downloading (135kB)
Collecting certbot-nginx==0.18.1 (from -r /tmp/tmp.FntqV4jY28/letsencrypt-auto-requirements.txt (line 211))
Could not find a version that satisfies the requirement certbot-nginx==0.18.1 (from -r /tmp/tmp.FntqV4jY28/letsencrypt-auto-requirements.txt (line 211)) (from versions: 0.6.0, 0.7.0, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 0.11.1, 0.12.0, 0.13.0, 0.14.0, 0.14.1, 0.14.2, 0.15.0, 0.16.0, 0.17.0, 0.18.0)
No matching distribution found for certbot-nginx==0.18.1 (from -r /tmp/tmp.FntqV4jY28/letsencrypt-auto-requirements.txt (line 211))

My web server is (include version):
nginx 1.12.1

The operating system my web server runs on is (include version):

My hosting provider, if applicable, is:

I can login to a root shell on my machine (yes or no, or I don’t know):

I’m using a control panel to manage my site (no, or provide the name and version of the control panel):

kindly need your help. This is a problem while acquiring the cert through certbot int the period establishing env.
error output where establish the env is:No matching distribution found for certbot-nginx==0.18.1 (from -r /tmp/tmp.FntqV4jY28/letsencrypt-auto-requirements.txt (line 211))


certbot-auto will try to upgrade as part of the renewal command - are you aware of that?

can you run certbot-auto --version?

if so run the command again but add the --no-self-upgrade flag

From documentation:

–no-self-upgrade (certbot-auto only) prevent the certbot-auto script
from upgrading itself to newer released versions
(default: Upgrade automatically)



Thanks Andrei! I worked as your suggestion,now the result is changed,but the error still exists.

./certbot-auto --no-self-upgrade --nginx

the output is:
Creating virtual environment…
Installing Python packages…
Installation succeeded.(it has never succeeded before,but this time it succeeded)
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Error while running nginx -c /etc/nginx/nginx.conf -t.

nginx: [emerg] open() “/etc/nginx/nginx.conf” failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed

The nginx plugin is not working; there may be problems with your existing configuration.
The error was: MisconfigurationError(‘Error while running nginx -c /etc/nginx/nginx.conf -t.\n\nnginx: [emerg] open() “/etc/nginx/nginx.conf” failed (2: No such file or directory)\nnginx: configuration file /etc/nginx/nginx.conf test failed\n’,)

2)omit last output error, run
** ./certbot-auto certonly --no-self-upgrade --webroot -w … -d …**
Then after input some information, I got the error:

Obtaining a new certificate
An unexpected error occurred:
The request message was malformed :: Error creating new authz :: Name does not end in a public suffix
Please see the logfiles in /var/log/letsencrypt for more details.

I tried many times, but still is not clear where is the key of the problem. Could you point out the key of the problem!


search what the public suffix list is (basically a list of valid domains) are you using something like .local in your config files

The easiest way may be to paste the log or the nginx config so other can have a look



Thanks Andrei ! Here is the log and config

  1. the log of cerbot is :
    2017-09-14 01:44:52,072:DEBUG:acme.client:Storing nonce: cLVLvHJKf_oeRD_uyW2o1Rl_PLtPmrJ4jAkM0di6xlA
    2017-09-14 01:44:52,072:DEBUG:certbot.log:Exiting abnormally:
    Traceback (most recent call last):
    ** File “/opt/”, line 11, in **
    ** sys.exit(main())**
    ** File “/opt/”, line 755, in main**
    ** return config.func(config, plugins)**
    ** File “/opt/”, line 694, in certonly**
    ** lineage = _get_and_save_cert(le_client, config, domains, certname, lineage)**
    ** File “/opt/”, line 82, in _get_and_save_cert**
    ** lineage = le_client.obtain_and_enroll_certificate(domains, certname)**
    ** File “/opt/”, line 357, in obtain_and_enroll_certificate**
    ** certr, chain, key, _ = self.obtain_certificate(domains)**
    ** File “/opt/”, line 318, in obtain_certificate**
    ** self.config.allow_subset_of_names)**
    ** File “/opt/”, line 66, in get_authorizations**
    ** self.authzr[domain] = self.acme.request_domain_challenges(domain)**
    ** File “/opt/”, line 212, in request_domain_challenges**
    ** typ=messages.IDENTIFIER_FQDN, value=domain), new_authzr_uri)**
    ** File “/opt/”, line 191, in request_challenges**
    ** response =, new_authz)**
    ** File “/opt/”, line 682, in post**
    ** return self._post_once(args, kwargs)
    ** File “/opt/”, line 695, in _post_once
    ** return self._check_response(response, content_type=content_type)**
    ** File “/opt/”, line 582, in _check_response**
    ** raise messages.Error.from_json(jobj)**
    Error: urn:acme:error:malformed :: The request message was malformed :: Error creating new authz :: Name does not end in a public suffix

2)the nginx config is :
** {**
** #listen 80;**
** listen 443 ssl;**
** #listen [::]:80 default_server ipv6only=on;**
** server_name;**
** index index.html index.htm index.php;**
** #root /home/wwwroot/laravel/studylaravel/public;**
** root /home/wwwroot/smarty/htdocs;**

** #error_page 404 /404.html;**

** # Deny access to PHP files in specific directory**
** #location ~ /(wp-content|uploads|wp-includes|images)/.*.php$ { deny all; }**

** include enable-php.conf;**

** location /nginx_status**
** {**
** stub_status on;**
** access_log off;**
** }**

** location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$**
** {**
** expires 30d;**
** }**

** location ~ .*.(js|css)?$**
** {**
** expires 12h;**
** }**

** location ~ /.well-known/acme-challenge/ {**
** allow all;**
** }**

** location ~ /.**
** {**
** deny all;**
** }**

** location / {**
** try_files $uri $uri/ /index.php?$query_string;**
** }**

** access_log /home/wwwlogs/access.log;**
** }**


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.