mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2026-04-26 01:45:54 +03:00
[GH-ISSUE #87] [Feature request] Custom SSL local path / file #76
Labels
No labels
awaiting feedback
bug
cannot reproduce
dns provider request
duplicate
enhancement
enhancement
enhancement
good first issue
help wanted
invalid
need more info
no certbot plugin available
product-support
pull-request
question
stale
troll
upstream issue
v2
v2
v2
v3
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/nginx-proxy-manager-NginxProxyManager#76
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @eithe on GitHub (Feb 26, 2019).
Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/87
Hi, I have my certificates accessible from the file system on the docker host so it would be great when adding a custom certificate that you could specify a local path instead of manually uploading the required files,
That way I could setup the container with e.g.:
And when adding a custom certificate I could enter e.g.
/ssl/my.cert@vrelk commented on GitHub (May 6, 2019):
This would be very helpful. I use a .net for my local network, so being able to use something such as acme.sh to generate a wildcard using a txt dns entry would be great and not have to copy the cert over manually.
For reference: https://github.com/Neilpang/acme.sh
@cbrherms commented on GitHub (Jun 24, 2019):
I would also like this. Would be useful for wildcard certs i'm generating via a different container.
@Dragonpark commented on GitHub (Sep 11, 2019):
I would also love this feature as this is the only thing preventing me from using this. I also use a different container to generate my certs (via DNS, not HTTP), which also handles automatically restarting any required containers when the certificate updates.
@ubergeek77 commented on GitHub (Oct 3, 2019):
Apologies for the ping, but can we get a comment on this, @jc21 ?
@osnet commented on GitHub (Dec 4, 2020):
the actual compose magic is putting the certs persistent in ./letsencrypt/



ok you have to know what npm-ID is your cert but thats ok in smaller environments
@christian-skjetne commented on GitHub (Dec 10, 2020):
There is a way to do this using the web interface. You can just turn off the SSL setting in the "proxy host" settings (set to none) and in the "Advanced"-tab you can set the ssl nginx manually using "Custom Nginx Configuration".
Example:
just copy and paste this for every "proxy host" you want to add. Not perfect or elegant, but it seems to work.
P.S: to force ssl redirect add the line
include conf.d/include/force-ssl.conf;@rubendepuben commented on GitHub (Feb 13, 2021):
Damn this feature would be nice
@meinradr commented on GitHub (Aug 24, 2021):
This feature would be amazing. Specially for non proxy host certificates since there is no advanced tab and therefore @christian-skjetne workaround does not work.
@shalak commented on GitHub (Mar 6, 2022):
Any updates on this one? I'm managing certbot separately and I'm provisioning all my services with certs via hooks. I'd like to see a "load cert from this path" option in npm...
@azoller1 commented on GitHub (Apr 4, 2022):
@shalak
Does @christian-skjetne comment not help you? Should be ok for any http proxy route. Haven't tried this out yet, though. Really want to use NPM, but this is a feature I would like to have. But, I think this should work for now.
@shalak commented on GitHub (Apr 4, 2022):
Yes, it does solve the issue, but I do not like to have such workarounds. If I have to manage configuration manually, I prefer to keep it all manually and not use NPM at all.
@azoller1 commented on GitHub (Apr 4, 2022):
I see. I am in the same boat as well. I am just manually editing my conf files at this point. Really easy to use nginxconfig.io to provide for the base files.
@BigW72 commented on GitHub (May 27, 2022):
Apologies if this is an idiot question, but why does it not seem to work to stop the container, replace the
privkey.pemandfullchain.pemin the relevant/data/custom_ssl/npm-xfolder with manually updated cert/key files and restarting the container?@1liminal1 commented on GitHub (Oct 13, 2022):
Can anyone advise what Im doing wrong here?
I add the config as specified and it gives me an offline error? Essentially breaks it
@tuxthepenguin84 commented on GitHub (Nov 22, 2022):
@1liminal1
I had a similar issue until I realized I had a conflicting config in it (listen 80 was in "details" and "advanced", once I removed it from "advanced" it worked). I would double check all your paths are correct and possibly restart the container, here's my exact config:
@tuxthepenguin84 commented on GitHub (Nov 22, 2022):
There's a simpler way to do this if all your Proxy Host need the same SSL config.
@BigW72 commented on GitHub (Feb 10, 2023):
Great, thanks! I have also tested this with a single proxy host and it works - now I can update the SSL settings for the 40+ others for the last time!
@ThaDaVos commented on GitHub (Sep 2, 2023):
Is there any progress on this issue except the mentioned workaround?
@Ducksoul commented on GitHub (Nov 11, 2023):
I had to declare absolute paths within the include lines. Otherwise the proxy hosts went offline:
include /etc/nginx/conf.d/include/letsencrypt-acme-challenge.conf;@nsaneadmin commented on GitHub (Jan 20, 2024):
full path also fixed mine! Good find Thanks!
@shalafi99 commented on GitHub (Aug 26, 2024):
I too would be interested if this feature were to be included natively in NPM (thus eliminating the need to use the "Advanced" tab in each proxy host or going with the /data/nginx/custom/server_proxy.conf customization)
@cwilson1776 commented on GitHub (Sep 25, 2024):
Regarding tuxthepenguin84's advice...
If your network and docker environment is set up for dual-stack, you need to also enable port 443 on IPv6:
or you may get the dreaded SSL_ERROR_UNRECOGNIZED_NAME_ALERT error when connecting. (What's terrible about this error response is that the nginx logs will not report issues during the SSL negotiation phase, so...you've got nothing to go on when trying to debug).
@AngelGonePro commented on GitHub (Jan 10, 2025):
Non of this is working for me

Please for the love of God add an option to add custom located certs, this is annoying and aggravating.
Your own cert system gets errors, so having to go this route is my only option.
@AngelGonePro commented on GitHub (Jan 10, 2025):
@tuxthepenguin84 Your method doesn't work. I just get a Unable to connect(to X.X.X.X:81) after restarting the docker. I have multiple domains so one file will not work for the multiple domains.
This feature needs to be added in the SSL section instead of having to upload them every renewal when certbot renews them.
@slovely commented on GitHub (Jan 22, 2025):
I suspect you've just hit the same issue I have. If you look in
/data/logs/fallback_error.logmy guess is you'll see something like:The later version of nginx has moved how http2 is specified (see https://forum.hestiacp.com/t/nginx-1-25-1-listen-http2-directive-is-deprecated/9816). Now http2 should be removed from the
listenline and moved into it's own line below ashttp2 on;.HOWEVER - because on the SSL tab you are not selecting a cert, then you cannot enable http2 so NPM is already adding a conflicting
http2 off;line...Can we get the option to enable HTTP/2 support without having to choose a certificate please?
@tuxthepenguin84 commented on GitHub (Jan 22, 2025):
For everyone having issues it might be better to move to pure nginx. I did that a while back and haven't had any further problems.
@AngelGonePro commented on GitHub (Jan 23, 2025):
No, my log was that NPM couldn't somehow read the file, said
was expecting --- PUBLIC KEY---or something along the lines of that. Even though the file was generated using certbot and was generated correctly.@github-actions[bot] commented on GitHub (Aug 23, 2025):
Issue is now considered stale. If you want to keep it open, please comment 👍
@bartgrefte commented on GitHub (Aug 23, 2025):
Well, then here's a comment to keep it open ;)
@BigW72 commented on GitHub (Aug 23, 2025):
I still think it would be great if one could easily use externally managed certificates.
If you can't use the GUI for everything and have to manage text files without certainty that the workaround won't stop working then using something designed to be managed via config files works better for me.
I have recently switched to SWAG and miss the NPM GUI, but overall it is easier to add new hosts.
PS: The reason I had to manage certs externally is because my DNS doesn't support automated renewal.
@BeanBagBob commented on GitHub (Oct 2, 2025):
I would love for this to be added to NPM natively.
@BeanBagBob commented on GitHub (Oct 2, 2025):
Question. Will NPM notice when the certificate on the host has been renewed?