NginxProxyManager / nginx-proxy-manager

Docker container for managing Nginx proxy hosts with a simple, powerful interface
https://nginxproxymanager.com
MIT License
22.9k stars 2.66k forks source link

Namecheap Let's Encrypt Certifiacte - Unable to determine zone identifier #2537

Open Redwid opened 1 year ago

Redwid commented 1 year ago

Checklist

Describe the bug I'm trying to set up Namecheap Let's Encrypt Certificate. Unfortunately with no success. Getting that error message in UI: Error: Command failed: certbot certonly --config "/etc/letsencrypt.ini" --cert-name "npm-38" --agree-tos --email "my-emai-is-herel@gmail.com" --domains "*.my-domain-is-here.com,my-domain-is-here.com" --authenticator dns-namecheap --dns-namecheap-credentials "/etc/letsencrypt/credentials/credentials-38" Saving debug log to /var/log/letsencrypt/letsencrypt.log Unable to determine zone identifier for my-domain-is-here.com using zone names: ['my-domain-is-here.com', 'com'] Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details. at ChildProcess.exithandler (node:child_process:402:12) at ChildProcess.emit (node:events:513:28) at maybeClose (node:internal/child_process:1100:16) at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)

Nginx Proxy Manager Version 2.9.19

To Reproduce Steps to reproduce the behavior:

  1. Go to 'SSL Certificates'
  2. Click on 'Add SSL Certificate' -> "Let's Encrypt'
  3. Fill in your domains names: my-domain-is-here.com and *.my-domain-is-here.com
  4. Fill in your email address for Let's Encrypt
  5. Select Use a DNS Challenge
  6. Select Namecheap DNC Provider
  7. Put your name to dns_namecheap_username
  8. Put Nmaecheap api key to dns_namecheap_api_key
  9. Select I agree
  10. Click Save
  11. Observ error message

Expected behavior Successful certificate retrial

Screenshots

Operating System Mac OS 12.5.1, Safari 15.6.1 ,Firefox 102.06esr

Additional context I have certbot set up on my host mashie. It could successfully fetch certificates. I could import that in npm UI. So certbot is working for me in manual mode with using TXT_RECORD _acme-challenge.

The certbot in container has a strange logs: 2023-01-12 15:15:31,571:DEBUG:certbot._internal.log:Exiting abnormally: Traceback (most recent call last): File "/usr/local/bin/certbot", line 8, in <module> sys.exit(main()) File "/usr/local/lib/python3.7/dist-packages/certbot/main.py", line 19, in main return internal_main.main(cli_args) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/main.py", line 1736, in main return config.func(config, plugins) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/main.py", line 1590, in certonly lineage = _get_and_save_cert(le_client, config, domains, certname, lineage) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/main.py", line 138, in _get_and_save_cert lineage = le_client.obtain_and_enroll_certificate(domains, certname) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/client.py", line 516, in obtain_and_enroll_certificate cert, chain, key, _ = self.obtain_certificate(domains) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/client.py", line 428, in obtain_certificate orderr = self._get_order_and_authorizations(csr.data, self.config.allow_subset_of_names) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/client.py", line 496, in _get_order_and_authorizations authzr = self.auth_handler.handle_authorizations(orderr, self.config, best_effort) File "/usr/local/lib/python3.7/dist-packages/certbot/_internal/auth_handler.py", line 88, in handle_authorizations resps = self.auth.perform(achalls) File "/usr/local/lib/python3.7/dist-packages/certbot/plugins/dns_common.py", line 76, in perform self._perform(domain, validation_domain_name, validation) File "/usr/local/lib/python3.7/dist-packages/certbot_dns_namecheap/dns_namecheap.py", line 62, in _perform self._get_namecheap_client().add_txt_record(domain, validation_name, validation) File "/usr/local/lib/python3.7/dist-packages/certbot/plugins/dns_common_lexicon.py", line 47, in add_txt_record self._find_domain_id(domain) File "/usr/local/lib/python3.7/dist-packages/certbot/plugins/dns_common_lexicon.py", line 110, in _find_domain_id .format(domain, domain_name_guesses)) certbot.errors.PluginError: Unable to determine zone identifier for my-domain-is-here.com using zone names: ['my-domain-is-here.com', 'com'] 2023-01-12 15:15:31,572:ERROR:certbot._internal.log:Unable to determine zone identifier for my-domain-is-here.com using zone names: ['my-domain-is-here.com', 'com']

Please note domain was edited to my-domain-is-here term

Kathou99 commented 1 year ago

I have the same error

Kathou99 commented 1 year ago

@Redwid Please check if the port 80 is not bing used and is open to the internet (outside world)

dmmackay commented 1 year ago

Have you added your IP to the Whitelisted IPs in Namecheap? This fixed it for me.

hakunamatata97k commented 1 year ago

@dmmackay @Redwid how did you get the API key from Namecheap could you please tell me?

Bovive commented 1 year ago

Have you added your IP to the Whitelisted IPs in Namecheap? This fixed it for me.

I know this is an old bug, but thanks for stating that. It also fixed it for me! If anyone needs the reference, here is the documentation from Namecheap on how to do it.

jmaximusix commented 1 year ago

I have the same isssue, but just for clarification, does someone know whether you need namecheaps sandbox or production API Key? I'm assuming production, but I've tried both without success

[Edit] It was my mistake, it did work for me, I accidentally used the sandboxed API twice. It does work with the normal API from namecheap, however you need at least 50$ in your balance to activate it, but I was able to deposit 50$, activate the API and then get it refunded through support (API access stays). Just be aware that whoever you entrust this API key with (in this case nginx proxy manager) is theoretically able to buy and sell domains in your name with that API as it inevitably has all these permissions

github-actions[bot] commented 6 months ago

Issue is now considered stale. If you want to keep it open, please comment :+1: