Unrecognized Arguments: dns-dnsmadeeasy-credentials


#1

My domain is: *.rvtd.org

I ran this command: 0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && perl -e ‘sleep int(rand(43200))’ && certbot -q renew (command executed by /etc/cron.d/certbot)

It produced this output:
certbot: error: unrecognized arguments: --dns-dnsmadeeasy-credentials /etc/letsencrypt/dnsmadeeasy.ini

My web server is (include version): nginx/1.14.0 (Ubuntu)

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

My hosting provider, if applicable, is: Self-Hosted

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

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

I also ran this command: certbot plugins
It produced this output:


  • dns-dnsmadeeasy
    Description: Obtain certificates using a DNS TXT record (if you are using DNS
    Made Easy for DNS).
    Interfaces: IAuthenticator, IPlugin
    Entry point: dns-dnsmadeeasy =
    certbot_dns_dnsmadeeasy.dns_dnsmadeeasy:Authenticator

  • standalone
    Description: Spin up a temporary webserver
    Interfaces: IAuthenticator, IPlugin
    Entry point: standalone = certbot.plugins.standalone:Authenticator

  • webroot
    Description: Place files in webroot directory
    Interfaces: IAuthenticator, IPlugin
    Entry point: webroot = certbot.plugins.webroot:Authenticator


I also ran this command: certbot renew --dry-run
It produced this output:
2018-07-10 17:28:50,766:DEBUG:certbot.main:certbot version: 0.24.0.dev0
2018-07-10 17:28:50,767:DEBUG:certbot.main:Arguments: [’–dry-run’]
2018-07-10 17:28:50,767:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#dns-dnsmadeeasy,PluginEntryPoint#manual,PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2018-07-10 17:28:50,779:DEBUG:certbot.log:Root logging level set at 20
2018-07-10 17:28:50,779:INFO:certbot.log:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2018-07-10 17:28:50,798:DEBUG:certbot.plugins.selection:Requested authenticator <certbot.cli._Default object at 0x7f79c1069d50> and installer <certbot.cli._Default object at 0x7f79c1069d50>
2018-07-10 17:28:50,798:DEBUG:certbot.cli:Var server=https://acme-staging-v02.api.letsencrypt.org/directory (set by user).
2018-07-10 17:28:50,798:DEBUG:certbot.cli:Var server=https://acme-staging-v02.api.letsencrypt.org/directory (set by user).
2018-07-10 17:28:50,798:DEBUG:certbot.cli:Var account=set([‘server’]) (set by user).
2018-07-10 17:28:50,798:DEBUG:certbot.cli:Var dns_dnsmadeeasy_credentials=/etc/letsencrypt/dnsmadeeasy.ini (set by user).
2018-07-10 17:28:50,805:DEBUG:certbot.storage:Should renew, less than 30 days before certificate expiry 2018-08-05 15:56:43 UTC.
2018-07-10 17:28:50,805:INFO:certbot.renewal:Cert is due for renewal, auto-renewing…
2018-07-10 17:28:50,817:DEBUG:certbot.plugins.selection:Requested authenticator dns-dnsmadeeasy and installer None
2018-07-10 17:28:50,821:DEBUG:certbot.plugins.selection:Single candidate plugin: * dns-dnsmadeeasy
Description: Obtain certificates using a DNS TXT record (if you are using DNS Made Easy for DNS).
Interfaces: IAuthenticator, IPlugin
Entry point: dns-dnsmadeeasy = certbot_dns_dnsmadeeasy.dns_dnsmadeeasy:Authenticator
Initialized: <certbot_dns_dnsmadeeasy.dns_dnsmadeeasy.Authenticator object at 0x7f79c10abb10>
Prep: True
2018-07-10 17:28:50,821:DEBUG:certbot.plugins.selection:Selected authenticator <certbot_dns_dnsmadeeasy.dns_dnsmadeeasy.Authenticator object at 0x7f79c10abb10> and installer None
2018-07-10 17:28:50,821:INFO:certbot.plugins.selection:Plugins selected: Authenticator dns-dnsmadeeasy, Installer None
2018-07-10 17:28:50,972:DEBUG:acme.client:Sending GET request to https://acme-staging-v02.api.letsencrypt.org/directory.
2018-07-10 17:28:51,007:DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org:443
2018-07-10 17:28:51,310:DEBUG:urllib3.connectionpool:https://acme-staging-v02.api.letsencrypt.org:443 “GET /directory HTTP/1.1” 200 724

2018-07-10 17:31:09,865:DEBUG:certbot.renewal:Dry run: skipping updating lineage at /etc/letsencrypt/live/rvtd.org
2018-07-10 17:31:09,866:DEBUG:certbot.renewal:no renewal failures

Any assistance troubleshooting why the cron job throws an “unrecognized arguments” error, but renew --dry-run runs successfully would be appreciated.


#2

Hi @mchristensen-rvtd,

How did you get this version of Certbot? It looks like you might have installed a development version (with git clone or something) in order to get the DNS plugins, yet that might only be available in a particular Python virtualenv and not be the same as the version of Certbot that’s installed in /usr/bin via your operating system package manager.

If you have two different versions of Certbot installed on the system at different paths and different ways of running them, that could conceivably be a difference in terms of which authenticator plugins they have available to use.


#3

Thank you. I inherited the system so I am not certain how certbot was installed.

I think I see the problem:

$ /usr/bin/certbot --version
certbot 0.23.0
$ /usr/local/bin/certbot --version
certbot 0.24.0.dev0

I assume that /usr/bin/certbot was installed using apt-get, but I am not sure why /usr/local/bin/certbot is a different version. Do you have any suggestions to get back to a single version (ideally with the DNS plugins) so the auto-renewal can complete successfully?


#4

I’m guessing that /usr/local/bin/certbot has the DNS plugins, so you might just be able to change your cron job to use that version.