NPM w/ Lets Encrypt Certificate

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. crt.sh | example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.

My domain is:shareorama.duckdns.org

I ran this command: Using NPM GUI to try and add Certificate

It produced this output: Error Messages From Docker:
[app ] [10/15/2026] [8:16:11 PM] [SSL ] › :information_source: info Requesting LetsEncrypt certificates for Cert #32: *****.duckdns.org

[app ] [10/15/2026] [8:16:11 PM] [SSL ] › :information_source: info Command: certbot certonly -n --config /etc/letsencrypt.ini --work-dir /tmp/letsencrypt-lib --logs-dir /data/logs --cert-name npm-32 --agree-tos --authenticator webroot -m danlyso@gmail.com --preferred-challenges http --domains *****.duckdns.org
[app ] [10/15/2026] [8:16:16 PM] [Nginx ] › :information_source: info Reloading Nginx
[app ] [10/15/2026] [8:16:16 PM] [Express ] › :warning: warning Saving debug log to /data/logs/letsencrypt.log
[app ] Some challenges have failed.
[app ] Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /data/logs/letsencrypt.log or re-run Certbot with -v for more details.

My web server is (include version):

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

My hosting provider, if applicable, is:NPM v2.16.0

I can login to a root shell on my machine (yes or no, or I don't know):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):

The version of my client is (e.g. output of certbot --version or certbot-auto --version if you're using Certbot):

Hello,

I'm a n00b but i'm trying to learn a few things for my homelab (want to set up SSL for users utilizing my chibisafe site for uploads). I've set up NPM in Docker and set up my proxy hosts which is accessible externally/internally, but having some issues with setting up SSL with Let's Encrypt. I keep getting an internal error when setting up "Request a new Certificate w/ LetsEncrypt , force SSL.'

I've tried the Add Cert Option through Certificate tab, Let's Encrypt via HTTP and get the same error, when i do a "Test" I get : ******.duckdns.org: There is a server found at this domain but it returned an unexpected status code Connection timed out.. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running. All the ports are enabled/forwarded so i dont know what I'm missing here.

Error Messages From Docker:
[app ] [10/15/2026] [8:16:11 PM] [SSL ] › :information_source: info Requesting LetsEncrypt certificates for Cert #32: *****.duckdns.org

[app ] [10/15/2026] [8:16:11 PM] [SSL ] › :information_source: info Command: certbot certonly -n --config /etc/letsencrypt.ini --work-dir /tmp/letsencrypt-lib --logs-dir /data/logs --cert-name npm-32 --agree-tos --authenticator webroot -m danlyso@gmail.com --preferred-challenges http --domains *****.duckdns.org
[app ] [10/15/2026] [8:16:16 PM] [Nginx ] › :information_source: info Reloading Nginx
[app ] [10/15/2026] [8:16:16 PM] [Express ] › :warning: warning Saving debug log to /data/logs/letsencrypt.log
[app ] Some challenges have failed.
[app ] Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /data/logs/letsencrypt.log or re-run Certbot with -v for more details.

What errors are shown in this log file?

All my tests from the public internet failed to reach you so doesn't seem to be accessible externally. See: Let's Debug
And: Check website performance and response : Check host - online website monitoring

Sadly, NPM does not readily show the underlying errors. It can be difficult to debug. Problems are almost always related to NPM config or other parts of your local network. You'd be better off getting assistance at an NPM community. There are a lot of "moving parts" with that which are beyond what we normally help with.

Yes, I know the error message says come here but that program (Certbot) that NPM uses for cert acquisition always refers people here at the end. It also displays and logs more useful info which NPM doesn't readily show.

Even with a Certbot log I am pretty sure the issue is related to the connectivity problem. Make sure that is working first.

http://shareorama.duckdns.org:24424 is accessible, my apologies forgot the port in the post, eventually want to get that out of there but just in my early setup.

Hint: The Certificate Authority failed to download the temporary challenge files created by Certbot. Ensure that the listed domains serve their content from the provided --webroot-path/-w and that files created there can be downloaded from the internet.

2026-10-15 21:13:25,516:DEBUG:certbot._internal.error_handler:Encountered exception:
Traceback (most recent call last):
File "/opt/certbot/certbot/lib/python3.12/site-packages/certbot/_internal/auth_handler.py", line 104, in handle_authorizations
self._poll_authorizations(authzrs, max_retries, max_time_mins, best_effort)
File "/opt/certbot/certbot/lib/python3.12/site-packages/certbot/_internal/auth_handler.py", line 208, in _poll_authorizations
raise errors.AuthorizationError('Some challenges have failed.')
certbot.errors.AuthorizationError: Some challenges have failed.

NPM has setup your system to use an HTTP Challenge. The Let's Encrypt server needs to validate you control that domain name and it sends several HTTP requests on port 80 to your system.

Your router or other components can forward that to a different port but you must handle the incoming on port 80. And, Certbot needs to be configured to handle your alternate port too. These are all NPM related issues.

A DNS Challenge might be possible but see NPM docs on setting that up and whether it supports it with DuckDNS

Background on challenges: Challenge Types - Let's Encrypt

I keep thinking its a port issue as everything things good, but port 80 has been set up on my router. Here is my port forwarding set up, I'm assuming the wan port needs to be 24424 and local LAN port is 80? Thanks for the solid info MikeMcQ, trying to learn this and can be a little confusing at times haha.

Processing: image.png…

I don't know how to set it up within NPM or within your router, but you need to make sure that requests for port 80 for your domain name (as viewed from the outside) get sent to your system.

In general NPM makes diagnosing problems tricky. If you're just looking for a reverse proxy that handles everything for you the general recommendation around here is to try using Caddy. (Though you'd still need to make sure it's externally accessible through your router, so changing software may not really solve your underlying problem.)

One nice thing about Docker Desktop i just found is the AI bot haha, so looks like i need to add 2 new port forwards ?