[GH-ISSUE #4661] Certificate renewal fails with Force SSL enabled and Port 443 blocked #2967

Open
opened 2026-02-26 07:37:26 +03:00 by kerem · 2 comments
Owner

Originally created by @pkess on GitHub (Jul 18, 2025).
Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/4661

Checklist

  • Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?
    • Yes
  • Are you sure you're not using someone else's docker image?
    • Yes
  • Have you searched for similar issues (both open and closed)?
    • Yes

Describe the bug
In an environment where internal services shall be accessed by https but not exposed to outside one could set up the force ssl solution and block port 443 to outside to ensure the service is intern only. While the service shall be available with a valid ssl certificate from intern the certificate should be requested from letsencrypt. This setup fails when "force ssl" is enabled

Nginx Proxy Manager Version
Tested with 2.12.3 and 2.12.6

To Reproduce
Steps to reproduce the behavior:

  1. Configure Proxy host for any service
  2. Forward port 80 from public to npm
  3. Block Port 443 from public
  4. Setup dns according to documentation
  5. Request first ssl certificate in npm -> will work while ssl is not already set up and therefore no ssl forward is activated
  6. Try to renew certificate -> The request from lets encrypt to the acme challenge will get redirected to https but as port 443 is blocked the challenge will not be successful and no certificate gets signed

Expected behavior
The whole acme challenge should work only with http as it does as well when the first certificate gets generated

Operating System
Tested on a ubuntu vm

Originally created by @pkess on GitHub (Jul 18, 2025). Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/4661 **Checklist** - Have you pulled and found the error with `jc21/nginx-proxy-manager:latest` docker image? - Yes - Are you sure you're not using someone else's docker image? - Yes - Have you searched for similar issues (both open and closed)? - Yes **Describe the bug** In an environment where internal services shall be accessed by https but not exposed to outside one could set up the force ssl solution and block port 443 to outside to ensure the service is intern only. While the service shall be available with a valid ssl certificate from intern the certificate should be requested from letsencrypt. This setup fails when "force ssl" is enabled **Nginx Proxy Manager Version** Tested with `2.12.3` and `2.12.6` **To Reproduce** Steps to reproduce the behavior: 1. Configure Proxy host for any service 2. Forward port 80 from public to npm 3. Block Port 443 from public 4. Setup dns according to documentation 5. Request **first** ssl certificate in npm -> will work while ssl is not already set up and therefore no ssl forward is activated 6. Try to renew certificate -> The request from lets encrypt to the acme challenge will get redirected to https but as port 443 is blocked the challenge will not be successful and no certificate gets signed **Expected behavior** The whole acme challenge should work only with http as it does as well when the first certificate gets generated **Operating System** Tested on a ubuntu vm
Author
Owner

@Guiorgy commented on GitHub (Aug 17, 2025):

#3121

<!-- gh-comment-id:3194636751 --> @Guiorgy commented on GitHub (Aug 17, 2025): #3121
Author
Owner

@github-actions[bot] commented on GitHub (Feb 25, 2026):

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

<!-- gh-comment-id:3956306804 --> @github-actions[bot] commented on GitHub (Feb 25, 2026): Issue is now considered stale. If you want to keep it open, please comment :+1:
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nginx-proxy-manager-NginxProxyManager#2967
No description provided.