NginxProxyManager / NginxProxyManager/nginx-proxy-manager
Custom SSL certificates deleted from GUI are not removed from container's persistent store
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 34.2k
- Forks
- 3.9k
- Avg merge
- 21h 12m
- Merged PRs (30d)
- 20
Description
Checklist
-
Have you pulled and found the error with
jc21/nginx-proxy-manager:latestdocker image?- Yes / No
-
Are you sure you're not using someone else's docker image?
- Yes / No (
jc21/nginx-proxy-manager:latest)
- Yes / No (
-
Have you searched for similar issues (both open and closed)?
- Yes / No
Describe the bug
Deleting custom certificates in GUI does not remove the certificates from the persistent store (internal path /data/custom_ssl). Obsolete certificates also seem to be maintained in /data/database.sqlite.
Nginx Proxy Manager Version
Version 2.12.3 (c5a319c) 2025-03-12 00:21:07 UTC, OpenResty 1.27.1.1, debian 12 (bookworm), Certbot certbot 3.2.0
To Reproduce
This is my first time using nginx so I was faffing-about trying different key combinations. All up I added three server key-pairs plus two wildcard key-pairs before settling on the last wildcard and deleting the other four.
Steps to reproduce the behavior:
- Go to the SSL Certificates tab.
- Click Add SSL Certificate and choose Custom.
- Give the certificate a name, and import private key and certificate file.
- Repeat steps 1..3 one or more times.
- Delete some or all of the imported custom certificates.
- Inspect internal path
/data/custom_ssland note the number ofnpm-?subdirectories. It will reflect the total number of certificates ever imported, irrespective of whether they appear in the GUI or have been deleted. - Count the number of rows in the
certificatetable of the database. It will reflect the total number of certificates ever imported, irrespective of whether they appear in the GUI or have been deleted.
Expected behavior
That when a certificate is deleted, it vanishes and becomes one with the snows of yesteryear.
Screenshots
Operating System
Tried on both:
-
QEMU Virtual CPU version 2.5+ running Debian GNU/Linux 12.9 (bookworm) as full 64-bit OS (running on Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz running Debian GNU/Linux 12.9 (bookworm) as full 64-bit OS)
-
8GB Raspberry Pi 4 Model B Rev 1.5 running Debian GNU/Linux 11.11 (bullseye) as full 64-bit OS
Additional context
Tried with both Safari and Chromium-Gost.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the deletion flow from the SSL Certificates tab, then trace how a custom certificate is removed from /data/custom_ssl and the certificate table in /data/database.sqlite. Done means deleted certificates no longer leave their npm-? directories or database rows, while retained certificates continue to work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, sqlite, typescript
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100