[PR #1479] SSL passthrough hosts #3440

Open
opened 2026-02-26 08:30:39 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/NginxProxyManager/nginx-proxy-manager/pull/1479
Author: @chaptergy
Created: 10/12/2021
Status: 🔄 Open

Base: developHead: ssl-passthrough-hosts


📝 Commits (7)

  • 5b1f0ce WIP: started adding new host type ssl passthrough
  • 5a2548c WIP: complete control of new passthrough host type
  • ab026e5 Merge branch 'develop'
  • 02d3093 Finalizes SSL Passthrough hosts
  • f650137 Fixes eslint errors
  • 6e82161 Adds comments to docker compose dev
  • 70163a6 Fixes migration

📊 Changes

41 files changed (+1949 additions, -129 deletions)

View changed files

📝 backend/app.js (+4 -6)
📝 backend/internal/host.js (+35 -7)
📝 backend/internal/nginx.js (+155 -64)
backend/internal/ssl-passthrough-host.js (+365 -0)
📝 backend/internal/user.js (+9 -8)
backend/lib/access/ssl_passthrough_hosts-create.json (+23 -0)
backend/lib/access/ssl_passthrough_hosts-delete.json (+23 -0)
backend/lib/access/ssl_passthrough_hosts-get.json (+23 -0)
backend/lib/access/ssl_passthrough_hosts-list.json (+23 -0)
backend/lib/access/ssl_passthrough_hosts-update.json (+23 -0)
backend/migrations/20211010141200_ssl_passthrough_host.js (+85 -0)
backend/models/ssl_passthrough_host.js (+56 -0)
📝 backend/routes/api/main.js (+12 -3)
backend/routes/api/nginx/ssl_passthrough_hosts.js (+196 -0)
backend/schema/endpoints/ssl-passthrough-hosts.json (+208 -0)
📝 backend/schema/index.json (+3 -0)
📝 backend/setup.js (+33 -21)
backend/templates/ssl_passthrough_host.conf (+41 -0)
📝 docker/docker-compose.dev.yml (+5 -1)
📝 docker/rootfs/etc/nginx/nginx.conf (+1 -0)

...and 21 more files

📄 Description

This PR would resolve https://github.com/jc21/nginx-proxy-manager/issues/853.

SSL passthrough would be a new type of host where the ssl certificate of the upstream server is used, so no ssl termination is done at the proxy. But the only way this is possible in nginx is streams, using SNI to forward the packet to the right destination. As a stream and the normal proxies using http cannot be on the same port, all https traffic has to go through the stream, which then could forward it internally to the http proxy. As this reduces performance for all hosts, this feature is strictly opt-in. The documentation was updated to add a section about this to the advanced config page.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/NginxProxyManager/nginx-proxy-manager/pull/1479 **Author:** [@chaptergy](https://github.com/chaptergy) **Created:** 10/12/2021 **Status:** 🔄 Open **Base:** `develop` ← **Head:** `ssl-passthrough-hosts` --- ### 📝 Commits (7) - [`5b1f0ce`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/5b1f0cead1e763dcde527cd23c54854cefd87417) WIP: started adding new host type ssl passthrough - [`5a2548c`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/5a2548c89df7e6ccfc869cbd49f9a9f8a0a91166) WIP: complete control of new passthrough host type - [`ab026e5`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/ab026e5e18ca3c5f9145b9c59e2920c629655e9c) Merge branch 'develop' - [`02d3093`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/02d3093d88e828f0014399feadcad1ee1b1ba80c) Finalizes SSL Passthrough hosts - [`f650137`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/f650137c8488df3c0980b027892747bc85012ed1) Fixes eslint errors - [`6e82161`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/6e82161987ee3a2f396327c8afe2f36b3d63e7f9) Adds comments to docker compose dev - [`70163a6`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/70163a66fbe524856df64b83252e3b26244ac0d0) Fixes migration ### 📊 Changes **41 files changed** (+1949 additions, -129 deletions) <details> <summary>View changed files</summary> 📝 `backend/app.js` (+4 -6) 📝 `backend/internal/host.js` (+35 -7) 📝 `backend/internal/nginx.js` (+155 -64) ➕ `backend/internal/ssl-passthrough-host.js` (+365 -0) 📝 `backend/internal/user.js` (+9 -8) ➕ `backend/lib/access/ssl_passthrough_hosts-create.json` (+23 -0) ➕ `backend/lib/access/ssl_passthrough_hosts-delete.json` (+23 -0) ➕ `backend/lib/access/ssl_passthrough_hosts-get.json` (+23 -0) ➕ `backend/lib/access/ssl_passthrough_hosts-list.json` (+23 -0) ➕ `backend/lib/access/ssl_passthrough_hosts-update.json` (+23 -0) ➕ `backend/migrations/20211010141200_ssl_passthrough_host.js` (+85 -0) ➕ `backend/models/ssl_passthrough_host.js` (+56 -0) 📝 `backend/routes/api/main.js` (+12 -3) ➕ `backend/routes/api/nginx/ssl_passthrough_hosts.js` (+196 -0) ➕ `backend/schema/endpoints/ssl-passthrough-hosts.json` (+208 -0) 📝 `backend/schema/index.json` (+3 -0) 📝 `backend/setup.js` (+33 -21) ➕ `backend/templates/ssl_passthrough_host.conf` (+41 -0) 📝 `docker/docker-compose.dev.yml` (+5 -1) 📝 `docker/rootfs/etc/nginx/nginx.conf` (+1 -0) _...and 21 more files_ </details> ### 📄 Description This PR would resolve https://github.com/jc21/nginx-proxy-manager/issues/853. SSL passthrough would be a new type of host where the ssl certificate of the upstream server is used, so no ssl termination is done at the proxy. But the only way this is possible in nginx is streams, using SNI to forward the packet to the right destination. As a stream and the normal proxies using http cannot be on the same port, **all** https traffic has to go through the stream, which then could forward it internally to the http proxy. As this reduces performance for all hosts, this feature is strictly opt-in. The documentation was updated to add a section about this to the advanced config page. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
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#3440
No description provided.